题目来源:
https://leetcode-cn.com/problems/subarray-sum-equals-k/
题目描述:
代码如下:
class Solution {
public int subarraySum(int[] nums, int k) {
int count = 0;
for (int i = 1; i < nums.length; i++) {
nums[i] += nums[i - 1];
}
Map<Integer, Integer> map = new HashMap();
map.put(0,1);
//map中的key为和为某个数,value为组成这个数有几种组成方法。
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(nums[i] - k)) {
count += map.get(nums[i] - k);
}
if (map.containsKey(nums[i])) {
map.put(nums[i], map.get(nums[i]) + 1);
} else {
map.put(nums[i], 1);
}
}
return count;
}
}