🗒️560. 和为 K 的子数组
2025-4-8
| 2025-4-8
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Apr 8, 2025 03:33 AM
给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 
子数组是数组中元素的连续非空序列。

滑动窗口——划不了一点

本题没办法使用滑动窗口,滑动窗口需要保证单调性。本题不满足该条件。
💡
数组不是单调的话,不要用滑动窗口,考虑用前缀和

前缀和

nums[i]nums[j-1] 的元素和等于 k,在前缀和中的表示为 s[j] - s[i] = k ,则 s[i] = s[j] - k
在本题中,我们需要统计满足条件的 s[i] 的个数。因为,我们使用一个哈希表,存储 s[i] 出现的个数。
这样,当来了一个新元素的时候,我们可以根据哈希表找到 s[j] - k 的个数,快速求解。

📎 参考

  • LeetCode 热题 100
  • 239. 滑动窗口最大值2516. 每种字符至少取 K 个(二刷)
    Loading...