
如果i...j的和是sum,i...k的和是sum+k,那么j+1...k的和就是k了
int subarraySum(vector<int>& nums, int k) {
int sum=0,res=0;
unordered_map<int,int> map;
map[0]=1;
for(int num:nums){
sum += num;
res += map[sum-k];
++map[sum];
}
return res;
}
本文介绍了一种高效算法,用于计算给定数组中和等于特定值K的连续子数组的数量。通过使用哈希表跟踪前缀和,算法能在O(n)时间内解决问题,避免了传统方法的高时间复杂度。
355

被折叠的 条评论
为什么被折叠?



