程式語言 - LeetCode - C++ - 560. Subarray Sum Equals K



題目:


方法:


解答:

class Solution {
public:
    int subarraySum(vector<int>& nums, int k) {
        int ans = 0;
        int prefix = 0;
        unordered_map<int, int> mp;

        mp[0] = 1;
        for (int n : nums) {
            prefix += n;

            if (mp.count(prefix - k)) {
                ans += mp[prefix - k];
            }
            mp[prefix] += 1;
        }

        return ans;
    }
};