和为 K 的子数组
题目描述:给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。(子数组是数组中元素的连续非空序列)
算法逻辑:前缀和,哈希表
数学逻辑
代码
class Solution
{
public:
int subarraySum(vector<
int>
&nums, int k)
{
int sum=0;
int ret=0;
unordered_map<
int,int> hash;
hash[0]=1;
for(auto i:nums)
{
sum+=i;
ret+=hash[sum-k];
hash[sum]++;
}
return ret;
}
};