零基础学算法100天第7天——二维差分(差分矩阵)(上)

简介: 零基础学算法100天第7天——二维差分(差分矩阵)

1、什么是差分矩阵?


 二维差分我们通常称之为差分矩阵。通过结合一维差分我们可以想到,它的作用是可以让某个子矩阵在O(1)的时间复杂度内让所有元素都加上c。


 而我之前一直都在强调一点——前缀和与差分是逆运用,二维亦是如此。


 如果我们有了一个b[][]如图:


image.png


很明显它的二维前缀和数组a[][]应该为:


image.png


 两者的关系为——a 是 b 的 前 缀 和 数 组 , 而 b 是 a 的 差 分 数 组 ( 差 分 矩 阵 ) a是b的前缀和数组,而b是a的差分数组(差分矩阵)a是b的前缀和数组,而b是a的差分数组(差分矩阵)


2、差分矩阵的核心操作


 我们前面已经提过,差分矩阵b[][]是帮助我们在O(1)时间内让原数组a[][]的某个子矩阵加上c。类似二维前缀和的讲解,通过图解能最快速帮忙大家理解差分矩阵的核心操作 :


 1、首先我们有一个如图的数组a[][] ,我们想让红色板块的值都加上c


 image.png


 2、如果我们此时对数组b[][]的该点加上c


 image.png


 3、因为a[][]是b[][]的前缀和数组,根据二维前缀和的初始化出发,会使得a[][]以下子矩阵全部都加上c


 image.png


 4、很显然,增加的面积超出了我们想要的范围,所以我们还需要减去a[][]中这两个子矩阵的面积


 image.png


image.png   

 5、又可以很明显的发现,减去的这两个子矩阵有重合的地方,我们多减了一次,最后还需要加回来,对于这两个减去子矩阵以及加回多减的操作。我们只需要让b[][]的绿色两点减上c,红色点加上c

 

image.png

相关文章
|
4月前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
1月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
37 6
|
2月前
|
人工智能 算法 JavaScript
【算法】前缀和与差分
算法学习——前缀和与差分(含一维和二维)
32 4
【算法】前缀和与差分
|
3月前
|
机器学习/深度学习 数据采集 人工智能
算法金 | 协方差、方差、标准差、协方差矩阵
**摘要:** 本文介绍了统计学中的基础概念,包括方差、标准差、协方差及其矩阵。方差衡量数据的分散程度,标准差是方差的平方根,提供相同单位下的波动度量。协方差则分析两个变量的关联性,正负值表示正负相关。协方差矩阵扩展到多变量情况,展示多个变量间的关系。这些工具在金融、质量控制、机器学习等领域有广泛应用。文章通过实例和公式清晰解释了每个概念,并强调理解它们之间的关系对于数据分析和统计建模的重要性。
30 0
算法金 | 协方差、方差、标准差、协方差矩阵
|
4月前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。
|
3月前
|
机器学习/深度学习 算法
简单遗传算法 + 最低水平线算法求解二维排样问题
简单遗传算法 + 最低水平线算法求解二维排样问题
43 0
|
3月前
|
算法 Python
二维矩形件排样算法之最低水平线搜索算法实现
二维矩形件排样算法之最低水平线搜索算法实现
95 0
|
3月前
|
机器学习/深度学习 移动开发 算法
二维矩形件排样算法之最低水平线算法实现
二维矩形件排样算法之最低水平线算法实现
65 0
|
4月前
|
算法 C++
c++算法学习笔记 (5)前缀和+差分
c++算法学习笔记 (5)前缀和+差分
|
3月前
|
算法
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值