差分数组
对数组中的一个区间进行同增 / 同减。
原数组a[n];
差分数组b[n];
程序中,对b进行O(2)操作,最后用O(n)将b的操作加入a。
由最后一步O(n)
for(int i=1;i<=n;i++)
a[i]=a[i-1]+b[i];
得:b[i]影响a[i]~a[n]
所以:若要改a[x]~a[y],操作b[x]和b[y+1]
减:b[x]–, b[y+1]++;
加:b[x]++, b[y+1]–;
...
原创
2020-10-06 17:07:51 ·
188 阅读 ·
0 评论