跳到主要内容

LCR010.和为K的子数组

链接:LCR010.和为K的子数组
难度:Medium
标签:数组、哈希表、前缀和
简介:给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。

题解 1 - cpp

  • 编辑时间:2021-12-23
  • 执行用时:80ms
  • 内存消耗:40.7MB
  • 编程语言:cpp
  • 解法介绍:前缀和。
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
unordered_map<int, int> mmap;
int sum = 0, ans = 0;
mmap[0] = 1;
for (auto& num : nums) {
sum += num;
if (mmap[sum - k]) ans += mmap[sum - k];
mmap[sum]++;
}
return ans;
}
};