跳到正文
信奥逐课

第 189 课

一维差分

🔵 基础 约 7 分钟

一句话理解

差分数组:d[i]=a[i]-a[i-1],是前缀和的逆运算。

为什么要学

区间加减变成两个点的修改。

讲解

给 [l,r] 都加 k:d[l]+=k,d[r+1]-=k。最后前缀和还原 a。

多次区间修改、最后统一询问,差分数组非常合适。

例子

d[l] += k;
d[r + 1] -= k;

还原后 l..r 都加了 k,r+1 起抵消。

常见错误

练习 做完再看下一课

区间 [l,r] 加 k,除了 d[l]+=k,还要 d[____]-=k

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课