什么是前缀和

8 分钟

前缀和就是“从第一个数一直累加到当前位置”的和。给一个数列,它的前缀和数列记录了每个位置的累计总额。

比如数列

  • 到第 1 个:
  • 到第 2 个:
  • 到第 3 个:

所以前缀和是 ,像记账本上“累计金额”那一列。

int run = 0;                       // 一路累计
for (int i = 0; i < n; i++) {
    run += a[i];                   // 加上当前数
    cout << run << " ";            // 输出到此为止的前缀和
}

用数学写,设原数列 ,前缀和

它的威力在于算好之后:任意一段区间的和都能用两个前缀和相减、一步得到,不必每次从头加。这让原本 的区间求和降到 。下一节我们动手把这个数组造出来。

小纸条

数列 1、2、3 的前缀和依次是多少?

登录 后可看答案

什么是前缀和 · 考级冲刺 · op599 课程