此题应用于区间修改问题。
如图,标准的区间修改问题。一看就是线段树。但实际是不用的,咱们可以用差分数组来实现这一点。在开始和结束位置记录增加/减少的值,可通过累加得到每个位置的修改值(太强了。。膜拜!!)
class Solution {
public:
vector<int> getModifiedArray(int length, vector<vector<int>>& updates) {
vector<int> v(length);
for(auto i: updates)
{
v[i[0]] += i[2];
if(i[1]+1 < length)v[i[1]+1] -= i[2];
}
for(int i=1;i<length;i++)v[i] += v[i-1];
return v;
}
};