leetcode 560. Subarray Sum Equals K

technically, no different with two sum

class Solution {
    public int subarraySum(int[] nums, int k) {
        Map<Integer, Integer> counter = new HashMap<Integer, Integer>();
        counter.put(0, 1);
        int sum = 0;
        int ret = 0;
        for (int num: nums) {
            sum += num;
            if (counter.get(sum - k) != null) {
                ret += counter.get(sum - k);
            }
            int c = counter.getOrDefault(sum, 0);
            counter.put(sum, c + 1);
        }
        return ret;
    }
}
posted on 2019-03-28 23:05  王 帅  阅读(108)  评论(0编辑  收藏  举报