
前缀和+哈希表

cpp
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
int result=0;
int pre=0;
unordered_map<int,int> map;
map[0]=1;//模拟测试用例1[1,1,1],k=2可知
for(const int& num:nums){
pre+=num;
if(map.find(pre-k)!=map.end())
result+=map[pre-k];
map[pre]++;
}
return result;
}
};