给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。
class Solution {
public:
int subarraySum(vector& nums, int k) {
int cnt=0;
unordered_mapmp;
mp[0]=1;//key为前缀和减去k,为0默认存在一组
int sum=0,res=0;
for(int i=0;i
sum+=nums[i];//计算前缀和
if(mp.count(sum-k))res+=mp[sum-k];
mp[sum]++;
}
return res;
}
};



