class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
int n=nums.size(),ret(0),i;
unordered_map<int,int>map;
if(!n) return 0;
int *p=new int[n+1];
p[0]=0;
map[0]=1;
for(i=1;i<=n;++i)
{
p[i]=nums[i-1]+p[i-1];
if(map.count(p[i]-k)) ret+=map[p[i]-k];
if(map.count(p[i])) ++map[p[i]];
else map[p[i]]=1;
}
return ret;
}
};
leetcode - 560. Subarray Sum Equals K
最新推荐文章于 2022-04-27 22:13:43 发布