560. 和为 K 的子数组
Posted yangbocsu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了560. 和为 K 的子数组相关的知识,希望对你有一定的参考价值。
560. 和为 K 的子数组
一、题目
给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 。
二、参考代码
2.1
class Solution
public int subarraySum(int[] nums, int k)
int n = nums.length;
int[] preNum = new int[n+1];
for(int i = 0; i < n; i++)
preNum[i+1] = preNum[i] + nums[i];
int res = 0;
for(int i = 0; i <= n; i++)
for(int j = i+1; j <= n; j++)
if(preNum[j] - preNum[i] == k)
res++;
return res;
2.2
class Solution
public int subarraySum(int[] nums, int k)
int cnt = 0, pre = 0;
HashMap<Integer,Integer> map = new HashMap<>();
map.put(0,1);
for(int item : nums)
pre += item;
if(map.containsKey(pre - k))
cnt += map.get(pre -k);
map.put(pre,map.getOrDefault(pre,0)+1);
return cnt;
以上是关于560. 和为 K 的子数组的主要内容,如果未能解决你的问题,请参考以下文章