package com.daily.daily20210201;
import java.util.HashMap;
import java.util.Map;
/**
* @Project: dailyCode
* @Site: http://www.zhao1iang.club/
* @Copyright: ©CodeLamp
* @Author: zhaoliang
* @Create: 2021-02-01 14:59
* @Desc: 和为k的子数组
**/
public class subarraySum {
//给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。
public int subarraySum(int [] nums,int k){
int count=0,sum=0;
Map<Integer,Integer> map = new HashMap<>();
map.put(0,1);
for (int num:nums
) {
sum+=num;
if (map.containsKey(sum - k)){
count = count + map.get(sum-k);
}
if (map.containsKey(sum)){
map.put(sum,map.get(sum)+1);
}else {
map.put(sum,1);
}
}
return count;
}
}
日常刷题-和为k的子数组
最新推荐文章于 2024-08-22 17:27:46 发布