什么是前缀和
约 8 分钟
前缀和就是“从第一个数一直累加到当前位置”的和。给一个数列,它的前缀和数列记录了每个位置的累计总额。
比如数列 :
- 到第 1 个:
- 到第 2 个:
- 到第 3 个:
所以前缀和是 ,像记账本上“累计金额”那一列。
int run = 0; // 一路累计
for (int i = 0; i < n; i++) {
run += a[i]; // 加上当前数
cout << run << " "; // 输出到此为止的前缀和
}
用数学写,设原数列 ,前缀和
它的威力在于算好之后:任意一段区间的和都能用两个前缀和相减、一步得到,不必每次从头加。这让原本 的区间求和降到 。下一节我们动手把这个数组造出来。
小纸条
数列 1、2、3 的前缀和依次是多少?
登录 后可看答案