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;
}
}