leecode第五百六十题(和为K的子数组)

Posted cjt-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leecode第五百六十题(和为K的子数组)相关的知识,希望对你有一定的参考价值。

技术图片

class Solution 
public:
    int subarraySum(vector<int>& nums, int k) 
        int cur = 0, res = 0;
        unordered_map<int, int> um;
          // 注意这里前缀和多了一个0,防止漏掉数组的前缀和刚好等于k的情况
        um[0] = 1;
        for (int num : nums) 
            cur += num;
            res += um.find(cur - k) == um.end() ? 0 : um[cur - k];
            ++um[cur];
        
        return res;
    
;

分析:

技术图片

 

以上是关于leecode第五百六十题(和为K的子数组)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 560.和为k的子数组

560. 和为 K 的子数组

560. 和为 K 的子数组

LeetCode-560. 和为 K 的子数组

《LeetCode之每日一题》:52.和为K的子数组

和为K的子数组--力扣