LeetCode 560. 和为 K 的子数组

class Solution {
public:
    int subarraySum(vector<int>& nums, int k) {
        int n=nums.size(),res=0;
        vector<int> s(n+1,0);
        unordered_map<int,int> hash;//记录端点i之前所有前缀和的出现情况
        for(int i=1;i<=n;i++)
            s[i]=s[i-1]+nums[i-1];
        hash[0]=1;
        for(int i=1;i<=n;i++)
        {
            res+=hash[s[i]-k];
            hash[s[i]]++;
        }
        return res;
    }
};
posted @ 2023-07-26 12:26  穿过雾的阴霾  阅读(8)  评论(0)    收藏  举报