【刚学编程没多久的大一新生,懂得不是很多。】
前缀和可以理解为数组的前N项的和,是编程中的一种数据预处理方法。
我们可以用一个前缀和数组来表示一个数组前n个元素的和,这里我声明为pre[N],N为常量。
当我们要求数组中某段元素的和时(这里我用第l个元素到第r个元素举例)
我们要求第l个元素到低r个元素的片段和就可以利用前缀和去写,
表示为pre[r]-pre[l-1];
我们看一道例题:
< 题目为蓝桥杯省赛题>
这是一道经典的前缀和类题:将题目所给信息整理为S=a1(a2+a3+a4+...+an)+a2(a3+a4+a5+a6+...+an)+...+an-1*an后
通常的思路就是暴力求解,代码如下:
这样写的时间复杂度很高【在数据量很大的时候】.这时候就可以使用前缀和来进行优化
优化代码如下:
这样相较于前一种使用的时间复杂度更低【毕竟全是单循环,awa!】
小结:
前缀和在求解片段和类的题目中有奇效【优化代码,当然也不是全都有用,awa!】