1public int subarraySum(int[] nums, int k) {
2 Map<Integer, Integer> map = new HashMap<>();
3 map.put(0, 1);
4 int sum = 0;
5 int count = 0;
6
7 for (int curr : nums) {
8 sum += curr;
9 int target = sum - k;
10 if (map.containsKey(target)) {
11 count += map.get(target);
12 }
13 map.put(sum, map.getOrDefault(sum, 0) + 1);
14 }
15
16 return count;
17}