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
的个数,快速求解。📎 参考
- 无