LeetCode 560. 和为 K 的子数组
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
int n=nums.size(),res=0;
vector<int> s(n+1,0);
unordered_map<int,int> hash;//记录端点i之前所有前缀和的出现情况
for(int i=1;i<=n;i++)
s[i]=s[i-1]+nums[i-1];
hash[0]=1;
for(int i=1;i<=n;i++)
{
res+=hash[s[i]-k];
hash[s[i]]++;
}
return res;
}
};
有帮助的话可以点个赞,我会很开心的~