Why it matters

Difference array unlocks efficient batch updates. Useful for scheduling + aggregation.

Advertisement

The architecture

Diff array: diff[i] = a[i] - a[i-1].

Range +v: diff[l] += v; diff[r+1] -= v.

Difference arrayDiff arraydelta representationRange update2 point modsPrefix sumrecover valuesAlso works for range updates + range queries via 2 BITs
Diff array approach.
Advertisement

How it works end to end

Extension: range updates + range queries via Fenwick trees. Two BITs handle it.

2D diff array: for 2D range updates.