主页有其他数据结构内容(持续更新中)
难度:Medium
代码:
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
unordered_map<int, int> dic;
int psum = 0;
int count = 0;
dic[0] = 1;
for(auto c : nums){
psum += c;
// 若当前的前缀和是psum,那么dic[psum - k]即为以当前位置结尾、满足条件的区间个数
count += dic[psum - k];
dic[psum]++;
}
return count;
}
};