目录

C算法差分

C++算法——差分

1.差分

差分与前缀和的核心思想相同,是预处理,可以在暴力枚举的过程中,快速给出查询的结果,从而优化时间复杂度。 是经典的用空间替换时间的做法 。 补充:使得最短跳跃距离尽可能长,遇到类似这样的问题时,要往 二分、贪心、动态规划 这些算法上考虑

2.一维差分数组

前缀和与差分是⼀对互逆的运算,对差分数组做前缀和运算可以得到原数组。

给定一个数组,对这个数组中某段区间的元素多次进行同时加一个数的操作,如这类的问题,就可以使用差分数组的算法来解决。 模板题目; 进阶题目:

3.二维差分数组

作用 :快速处理“将二维数组中,某一个子矩阵统一加上一个元素”的操作,可以达到O(1)的时间复杂度 性质 :对差分矩阵进行前缀和运算后,能够还原出修改之后的原始矩阵。

3.1模板题目

https://i-blog.csdnimg.cn/direct/47a52e3cdcdd47c2bd7cd54a95113ff3.png

创建差分矩阵也很简单,在全局范围创建二维数组,此时数组每个值都是0,初始化原始矩阵时,每初始化一个元素,就相当于在这个范围中同时加上了一个k,此时差分矩阵进行对应的操作即可。 https://i-blog.csdnimg.cn/direct/65dd3d5aaf914888b061fe6641fed500.png