前缀和与差分
文章目录
一维前缀和
sum[i]=sum[i-1]+a[i];i>0
sum[i]=sum[0]=a[0] ;i=0
arr 1,3, 7, 5, 2
sum 1,4,11,16,18
sum[i]是0到i的区间和
如2到4的区间和,k-r
sum[r,k]=sum[k]-sum[r-1]; r>0,
r=0的时候, sum[k] r=0;
1 |
|
一维差分
再区间里面对区间值进行修改,如果使用普通的方法,操作一次的时间复杂度是O(N),如果要询问k次,时间复杂度就是O(n*k)
差分就是d[0]=a[0],d[1]=a[1]-a[0];,差分的前缀和就是原数组
1 |
|
二维前缀和
将矩阵进行操作,从(x1,y1)->(x2,y2)形成的矩阵,进行前缀和相加
1 |
|
二维差分
1 |
|
前缀和与差分
http://example.com/2021/12/25/前缀和与差分/