基础算法 --- 前缀和与差分

Posted sniffs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础算法 --- 前缀和与差分相关的知识,希望对你有一定的参考价值。

前缀和

一个数列A,它的前缀和数列S是能够通过数学方式推断出来的:

技术图片

部分和

数列A中某个下标区间内和数的和,即:

S[i, j]=S[j] - S[i - 1]

前缀和与部分和应用场景

给定m个区间,求每个区间内数的和;

暴力解法:m次循环,循环内部再进行区间循环,这种解法在小量数据场景无问题,如果数值大,会造成超时。

前缀和解法:先计算前缀和,然后循环m次,求每个区间部分和

差分

一个数列A:1、2、3、4、5,它的差分数列为B:1、1、1、1、1,那么有如下特性:

1、数列B的前缀和S[i]=A[i]

2、数列A的第i项加k相当于数列B的第i项加k,第i+1项减k

3、数列A的第i到j项加k,相当于数列B的第i项加k,第j+1项减k

力扣对应习题

https://leetcode-cn.com/problems/corporate-flight-bookings/

https://leetcode-cn.com/problems/subarray-sum-equals-k/

以上是关于基础算法 --- 前缀和与差分的主要内容,如果未能解决你的问题,请参考以下文章

第六章 基础算法

algorithm认真讲解前缀和与差分 (图文搭配)

算法2-1前缀和与差分

算法基础班 1.快速排序

AcWing基础算法课Level-3 第一讲 基础算法

AcWing算法基础课基础算法