交互演示:差分与区间加法

n = 5

下标从 0 开始。在区间 [l, r] 的每个元素上加 x;x 为负数表示减法。每次输入都基于原数组,修改不会累积。

修改前

原数组 a
原差分数组 d

修改后

新数组 a′
新差分数组 d′

d0 = a0,di = ai − ai−1(1 ≤ i < n)。

绿色:d[l] 加 x;橙色:d[r+1] 减 x。只修改两个差分位置,就能表示整个区间的变化。

对新 d 求前缀和,还原新 a:a′i = d′0 + ⋯ + d′i。

d 额外保留一个初始为 0 的边界位 dn,用于记录区间末尾的抵消;还原 a 时只取前 n 项。