前缀和在求片段和中的应用

【刚学编程没多久的大一新生,懂得不是很多。】

前缀和可以理解为数组的前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!】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值