大佬博客链接:https://www.cnblogs.com/ice-wing/p/7709311.html
差分:
于是先来说一下差分吧,假设现在给你一个序列,要对区间进行修改,只有区间加和区间减,然后求一次整体的最大值
好事,我们只需要用线段树就好了,但是如果数据范围比较大,那么线段树就死了,这时我们可以考虑这样一种操作
比如说这样一个序列
1 2 2 4 5 6 5 7 8
假设我们要修改区间[4, 7],将区间内所有数都加1,那么我们可以再开一个数组用来标记
在4的位置标记+1,在8的位置标记-1
0 0 0 1 0 0 0 1
这时我们就可以发现对这个标记数组求一个前缀和
0 0 0 1 1 1 1 0
哦好事,我们发现我们就已经知道在某一段区间要加上几,这样我们就一个O(n)扫一遍,取个最大值
这题就结束了。
题?回头再说