给你一个整数数组 nums
和一个整数 k
,请你统计并返回 该数组中和为 k
的子数组的个数 。
子数组是数组中元素的连续非空序列。
示例 1:
输入:nums = [1,1,1], k = 2 输出:2
示例 2:
输入:nums = [1,2,3], k = 3 输出:2
前缀和 是指从数组的起点到当前位置的所有元素的累积和。它是一种非常有用的技术,可以帮助我们在许多问题中快速计算子数组的和。通过前缀和,我们可以在不需要重复计算每个子数组的情况下,快速确定子数组的和是否等于给定的值 k
。
例子说明
假设你有一个数组 nums = [1, 2, 3, -1, 4]
,并且你想找出和为 k = 3
的子数组。
1. 前缀和的定义
前缀和是指从数组的起点(即第一个元素)到当前元素的累积和。
prefixSum[0] = nums[0] = 1
prefixSum[1] = nums[0] + nums[1] = 1 + 2 = 3
prefixSum[2] = nums[0] + nums[1] +