前缀和
定义
对于一个给定的数组 nums,前缀和数组 pre 定义为:
pre[i]=nums[0]+nums[1]+⋯+nums[i]
基于这一思想,可以根据前缀和pre[i]计算任意子数组的和
要计算下标i到j的总和,可以用前缀和数组pre[j]-pre[i-1]来进行简便计算
优点
1.时间复杂度:利用前缀和可以在o(1)时间复杂度内计算任意子数组的和
2.空间复杂度:前缀和数组需要额外的 O(n) 空间,其中 n 是原数组的长度。
案例
leetcode 560. 和为 K 的子数组
子数组需要得到满足和为k,也就是寻找满足下标i到j的总和为k的数组的数量,考虑到可以用前缀和来解决这一问题.


浙公网安备 33010602011771号