一维前缀和
前缀和数组里保存的就是前 n 项的和 。
我们通过前缀和数组保存 前 n 位的和,presum[1]保存的就是 nums 数组中前 1 位的和,也就是 presum[1] = nums[0], presum[2] = nums[0] + nums[1] = presum[1] + nums[1].
依次类推,所以我们通过前缀和数组可以轻松得到每个区间的和。
- 一维数组 A
- 前缀和数组 S
for(int i = 0; i < A.length; i++) {
S[i + 1] = S[i] + A[i];
}
- 字段和 sum[l, r] = S[r+1] - S[l],这里的 l,r 表示数组 A 的下标
- 当 A 中都是非负数,前缀和数组 S 单调递增