找题与筛选 23 题
定长滑动窗口,
先找到“不变的宽度”。
这份教程对应截图中的 §1.2 进阶 19 题 + 思维扩展 4 题。每题都从“为什么能转成窗口”讲起,再给维护量、证明、短例子和 C++17 参考实现。
有些题直接给 k;有些要先把会议变成空隙、把交换变成补空位,或枚举不同字母数,才能发现窗口宽度。真正需要练习的是这个转化过程。
确定候选区间→确定窗口宽度→只维护变化→证明没有漏解
建议先做 1052 → 2134 → 567/438,再看 3439 与 3652 的转化。30、2953、2156、1016 可以在前面几种维护量熟悉后再读;是否掌握由你的独立做题与解释来判断。
这 23 题在练什么?
先看清一轮更新发生了什么
下面用“长度 k 的最大子数组和”演示共同骨架。先加入右端;如果窗口超长,再删左端;只有长度完整时才更新答案。题目的维护量可以换,边界顺序要一致。
for (int r = 0; r < n; ++r) {
加入(a[r]);
if (r >= k) 移除(a[r-k]);
if (r + 1 >= k) 用当前完整窗口更新答案;
}
自己改一组数,逐步执行
选择一题开始
从 1052 开始 →筛选只影响目录,不改练习记录。展开题解或复制代码不会自动标记完成。
没有符合当前筛选的题目。
记录与使用方式
- 先到原题独立尝试,再看本页提示、演示与参考代码;完成与复习状态由你手动标记。
- 状态和错因笔记保存在当前浏览器。导出 JSON 后可在另一浏览器或离线版导入;与力扣账号不自动同步。
- 顶部“离线下载”提供完整单文件 HTML。网页展示和讲解算法,不会在浏览器里编译或向力扣提交 C++。
内容来源、代码验证与会员题说明
范围依据灵茶山艾府的题单和本次截图,核对日期为 2026-11-01。本页使用自行组织的简述、推导与教学样例,不是题单作者或力扣官方教程。
20 道公开题根据官方题面与接口核对。3672、2067、2524 的完整官方题面没有公开读到;对应规则与签名据官方公开提示及 doocs 作者公开算法仓库交叉核对,题目页内有具体来源。
C++17 代码为本页编写,经过本地编译、独立小规模暴力对照与边界检查;没有声称已在力扣提交通过。字符串复制与哈希、字母表扫描、模运算和有序结构的成本均按实际代码说明。