package leetcode;
import java.util.HashMap;
public class demo_560 {
public int subarraySum(int[] nums, int k) {
int count=0;
int preSum=0;
//记录当前preSum出现了几次
HashMap<Integer, Integer> map=new HashMap<Integer, Integer>();
//还未开始,所以和为0出现了1次
map.put(0, 1);
for(int i=0;i<nums.length;i++) {
preSum=preSum+nums[i];
//和为K的个数,就是所有可能为preSum-k的个数
if(map.containsKey(preSum-k)) {
count=count+map.get(preSum-k);
}
map.put(preSum,map.getOrDefault(preSum, 0)+1);
}
return count;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
demo_560 demo=new demo_560();
int[] nums= {1,2,3};
demo.subarraySum(nums,3);
}
}