前缀和

107 阅读1分钟

前缀和

作用

  1. 快速求出数组0~i的和
  2. 快速求出数组i~j的和

模板1 和数组本身大小相同

int[] s = new int[nums.length];
s[0] = nums[0];

for (int i = 1; i < nums.length; i++) {
    s[i] = s[i-1] + nums[i];
}

解读: 和数组大小相同,s[i]表示到 0~i 的数字之和 求 i ~ j , s[j] - s[i - 1]且 i 需要大于等于1

模板2

int[] s = new int[nums.length + 1];
s[0] = 0;
for (int i = 1; i < nums.length + 1; i++) {
    s[i] = s[i - 1] + nums[i - 1];
}

解读:包含第0位,s 表示前 i 个数字之和。