适用情况
频繁的对区间进行修改操作,单点查询。
基本使用
初始化,以及跟新操作
int[] diff = new int[n + 1]; |
查询操作
int[] res = new int[n]; |
基本原理
diff[L...]+3
表示对 diff[L...]
所有的元素都 +3
。diff[R+1...]-3
表示对 diff[R+1...]
所有的元素都 -3
。
那么,通过对 diff[R+1...]
所有的元素都 -3
,就可以抵消 diff[R+1...]
多余的 +3
操作(该多余操作来自:diff[L...]
所有的元素都 +3
),从而得到只有 diff[L...R]
中所有的元素都 +3
。