这是C++算法基础-基础算法专栏的第十一篇文章,专栏详情请见此处。
引入
我们用朴素做法求一维数组的区间和时,一般是从前向后循环累加,它的时间复杂度为,当求区间和的次数过多,则会有超时的可能,那有没有时间复杂度更低的做法呢?当然有,这就是前缀和做法,它求区间和的时间复杂度为
。
下面我们就来讲一维前缀和的实现。
定义
前缀和是一种重要的预处理方式,能大大降低查询的时间复杂度。
过程
表示
对于原数组,一维前缀和额外开辟了一个数组
,对于每个
ÿ