1.前缀和是s[i]是从a[1]~a[i]所有元素的和。
2.前缀和的应用举例:对于a[i]的前缀和s[i],如果求在a[l]~a[r]元素的和,可以用是s[r]-s[l-1]求得,时间复杂度为O(1)。
eg:
1.先输入a[i],scanf("%d",&a[i]);
2.然后求其前缀和s[i],for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i],其中a[i]与s[i]定为全局变量,且数组下标从1开始用,特殊的是s[1]=s[0]+a[1],因为定为全局变量s[0]=0.
3.接着就是运用啦,比如求a[1]~a[3]的和直接printf("%d\n",s[3]-s[0])
,求a[l]~a[r]的和直接printf("%d\n",s[r]-s[l-1])。
看到最后,兄嘚带那个赞👍吧,感谢阅读。
基础算法——一维前缀和
于 2022-01-23 10:48:20 首次发布