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