你以为是滑动窗口?其实90%的人都在这里翻车了!
你以为是滑动窗口?其实90%的人都在这里翻车了!
很多人看到“子数组 + 和 = K”,第一反应就是:滑动窗口。
写着写着你就发现不对劲——窗口一动,答案就乱了。
再试几组数据,直接怀疑人生:这题是不是有毒?
别急,这题确实“坑”,但一旦看透,本质非常优雅。
一、问题本质:我们到底在找什么?
题目是:
给一个数组,找和等于 K 的最长子数组长度
注意三个关键词:
- 子数组(连续!)
- 和 = K
- 最长
很多人一上来就暴力:
# O(n^2) 暴力枚举能做,但没意义。
真正关键在于:
👉“连续 + 和” → 前缀和问题
二、为什么滑动窗口会失败?
滑动窗口成立的前提是:
👉区间具有“单调性”
比如:
- 全是正数 → 和只会越来越大 ✔
- 有负数 → 和可能变小 ❌
