序文へのイントロ


define sum of subarray:
let sum(i,j) = nums[i]+nums[i+1]...+nums[j]



前缀和 前置
与えられた整数配列nums 長さのn , プリサム配列を作成するpreSum 長さのn+1 , 以下の特徴を持つ
  • preSum[i] = sum(0,i-1) , すなわちNUMの最初のiエントリの合計
  • sum(i,j) = preSum[j+1]-preSum[i]

  • コード
    int n = nums.length;
    // preSum array
    int[] preSum = new int[n + 1];
    preSum[0] = 0;
    for (int i = 0; i < n; i++)
        preSum[i + 1] = preSum[i] + nums[i];
    

    リファレンス
    source