前缀和

52 阅读1分钟

前缀和定义

前缀和是一种常用的数组预处理技巧,用于快速计算数组中任意区间的和。

给定一个数组 A,则数组A的前缀和数组S的定义为:

S[0] = 0
S[i] = A[0] + A[1] + ... + A[i-1] (即前 `i` 个元素的和)

作用

通过前缀和,可以在 O (1) 时间 内计算任意区间 [i, j] 的和。

例如计算数组A[3:7]区间的和:S[7]-S[3]

解释:

S[7]-S[3] = A[1]+A[2]+A[3]+A[4]+A[5]+A[6]+A[7] - A[1]+A[2]+A[3]
          = A[4]+A[5]+A[6]+A[7]