ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。
https://ckai.xyz
01.前缀和
概念:前缀和是指在一个数列中,以某个数字作为前缀的数字和
一维数组一维前缀和数组模板
sum[0]=arr[0]; i=0
sum[i]=sum[i-1]+arr[i]; i>0
int arr[5] = {2,3,5,7,11};
int sum[5];
for(int i = 0;i < 5;i++)
{
if(i == 0)
sum[i] = arr[i];
else
sum[i] = sum[i-1] + arr[i];
}
//输出sum数组验证
for(int i = 0;i < 5;i++)
cout << sum[i] << " "; //输出2 5 10 17 28
作用:求区间[l,r]内的数组和
区间[l,r]的和 = arr[l]+arr[l+1]+...arr[r-1]+arr[r];
sum[r]-sum[l-1] = sum[0]+sum[1]+...sum[l-2]+sum[l-1]+sum[l]+...sum[r]
- sum[0]+sum[1]+...sum[l-2]+sum[l-1]
=sum[l]+...sum[r]
由此可得,当求一个数组在区间[l,r]内的和,我们可以用它的前缀和和数组快速得出答案