0
点赞
收藏
分享

微信扫一扫

基本算法-03前缀和与差分 学习笔记


一、前缀和

对于一个给定的数列A,它的前缀和数列S时通过递推能求出的基本信息之一。

一个部分和,即数列A某个下标区间内的和,可以表示为前缀和相减的形式;

在二维数组中,可以类似的求出二维前缀和,进一步计算出二维部分和

定义一个二维数组 a[i][j] 则其前缀和为

基本算法-03前缀和与差分 学习笔记_差分序列_04

那么最大的矩形前缀和就等于蓝的矩阵加上绿的矩阵,再减去重叠面积,最后加上小方块,即

二、差分

对于一个给定的数列A,它的差分数列B定义为:

可知:“前缀和”与“差分”为一对逆运算,差分序列B的前缀和序列就是原序列A,前缀和序列S的差分序列也是原序列A。

靶序列A的区间[l, r]加d(即把 Al,AL + 1,…,Ar都加上d),其差分序列B的变化为Bl加d,Br+1减d,其他位置不便,这有助于我们在许多题目中,把原序列上的“区间操作”转化为差分序列上的“单点操作”进行计算,降低求解复杂度。


举报

相关推荐

前缀和与差分

差分与前缀和

前缀和与差分:798. 差分矩阵

前缀和&差分

差分&前缀和

从前缀和与差分角度看算法分析

前缀和及差分总结

C++前缀和,差分

0 条评论