1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class Solution { public int numSubarraysWithSum(int[] nums, int goal) { int preSum = 0, count = 0; Map<Integer, Integer> preSumToCountMap = new HashMap<>(); preSumToCountMap.put(0, 1); for (int num : nums) { preSum += num; count += preSumToCountMap.getOrDefault(preSum - goal, 0); preSumToCountMap.put(preSum, preSumToCountMap.getOrDefault(preSum, 0) + 1); }
return count; } }
|
References
930. Binary Subarrays With Sum