题目:
代码(首刷看解析 2024年3月2日):
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
// 前缀和 + 遍历
int res = 0;
unordered_map<int, int> sumPre;
int sum = 0;
// 关键:初始化
sumPre[0] = 1;
for (int i = 0; i < nums.size(); ++i) {
sum += nums[i];
if (sumPre.find(sum - k) != sumPre.end()) {
res += sumPre[sum - k];
}
sumPre[sum]++;
}
return res;
}
};