和为 k 的子数组个数
解题思路
本题属于前缀和 + 哈希表的经典应用。我们需要找到所有连续子数组的和为 k 的个数。以下是解题的核心思路:
1. 前缀和思路
- 定义前缀和:
prefixSum[i] 表示从数组的起始位置到第 i 个元素的累加和。
- 假设某一段子数组的和为
k,即:
Leetcode 10.和为K的子数组-原题链接
题目内容
给你一个整数数组nums和一个整数k,请你统计并输出 该数组中和为 k 的子数组的个数。
子数组是数组中元素的连续非空序列。
输入描述
输入共两行。
-
第一行为两个个整数,n,k。
-
第二行为n个整数nums0,nums1,...,numsn−1,数字之间以空格分隔。
输出描述
一个整数,表示答案。
样例1
输入
3 2
1 1 1
输出
2
样例2
输入
3 3
1 2 3
输出
2
提示
- 1<=nums.length<=2∗104
- −1000<=nums[i]<=1000
- −107<=k<=107