560.和为K的子数组

和为K的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数

子数组是数组中元素的连续非空序列。

示例 1:

1
2
输入:nums = [1,1,1], k = 2
输出:2

示例 2:

1
2
输入:nums = [1,2,3], k = 3
输出:2

提示:

  • 1 <= nums.length <= 2 * 104
  • -1000 <= nums[i] <= 1000
  • -107 <= k <= 107

方法一:枚举

纯暴力,时间复杂度$O(n^2)$

方法二:前缀和 + 哈希表优化

前0到i个数的和为$pre[i]$,所以可以得到

可以推断出i到j的子数和为k

所以


560.和为K的子数组
http://example.com/2023/09/19/560-和为K的子数组/
Author
WYX
Posted on
September 19, 2023
Licensed under