560. Subarray Sum Equals K 发表于 2022-01-09 123456789101112131415161718class Solution { public int subarraySum(int[] nums, int k) { int count = 0; Map<Integer, Integer> prefixSumToCountMap = new HashMap<>(); prefixSumToCountMap.put(0, 1); int prefixSum = 0; for (int num : nums) { prefixSum += num; count += prefixSumToCountMap.getOrDefault(prefixSum - k, 0); prefixSumToCountMap.put(prefixSum, prefixSumToCountMap.getOrDefault(prefixSum, 0) + 1); } return count; }} 注意题目输入数据中可能存在负数,可能存在重复的前缀和,所以我们引入了 HashMap 用于存储重复的前缀和个数。 Reference560. Subarray Sum Equals K剑指 Offer II 010. 和为 k 的子数组