差分用于频繁的对区间进行增减操作,当题目有出现很多个区间进行叠加的时候优先想到,差分可以用来记录被重叠的厚度
// 初始化差分数组
f[0] = n[0];
for(int i=1;i<len;i++) {
f[i] = n[i] - n[i-1];
}
// 进行增减操作
// eg:[2,4]闭区间加二
f[2] += 2;
f[5] -= 2;
//还原
n[0] = f[0];
for(int i=0;i<len;i++) {
n[i] = n[i-1] + f[i];
}
差分用于频繁的对区间进行增减操作,当题目有出现很多个区间进行叠加的时候优先想到,差分可以用来记录被重叠的厚度
// 初始化差分数组
f[0] = n[0];
for(int i=1;i<len;i++) {
f[i] = n[i] - n[i-1];
}
// 进行增减操作
// eg:[2,4]闭区间加二
f[2] += 2;
f[5] -= 2;
//还原
n[0] = f[0];
for(int i=0;i<len;i++) {
n[i] = n[i-1] + f[i];
}
本文标题:2022-09-11 算法学习——差分 前缀和
本文链接:https://www.haomeiwen.com/subject/uxxfortx.html
网友评论