开始前应具备
- 能读懂数组、字符串和循环
- 知道函数参数与返回值
- 可以独立完成简单枚举
CHAPTER 01 · 基础建模
先学会描述问题、估算代价,再决定使用什么数据结构和算法。
BEFORE LEARNING
这一章不追求记住更多算法,而是建立一套稳定的解题顺序:读约束、写暴力、找重复、选择数据结构、证明复杂度。后面的每个专题都会重复使用这套流程。
开始前应具备
完成本章后
CORE LESSONS
LESSON
题目给出 n 的范围,或暴力枚举看起来可能超时时,先估算允许的操作数量。
复杂度是输入增长时工作量的变化趋势。先列出最直接的枚举,再检查循环层数、递归分支和额外存储,才能知道优化目标究竟是减少一次遍历,还是消除一层枚举。
约束 n → 允许的复杂度
暴力解 → 找重复工作
选择索引或单调性 → 优化
用样例与边界验证LESSON
题目反复询问“是否出现过”“某个值对应什么位置”“能否找到互补元素”时,考虑哈希结构。
集合只回答是否存在,映射保存键到信息的对应关系。真正的关键不是使用 Map,而是定义好键:原值、排序后的字符串、计数编码或前缀和都可能成为索引。
for item in input:
key = encode(item)
if key in index: use(index[key])
index[key] = informationLESSON
任何题都适用,尤其是“看懂题解但下次仍不会”的情况。
完成提交不是学习终点。一个完整闭环需要能够复述状态、解释每一步为何不漏解,并记录失败原因。只有能迁移到相似题,才算形成了算法模式。
题目特征:___
核心状态:___
不变量:___
失败原因:___
下次识别信号:___READING
先读完本站讲义并尝试练习;遇到推导不清的地方,再回到原始教程深入阅读。
PRACTICE LADDER
题量由知识点决定,不再固定为 5 道。先完成“入门”和“模板”,再做变式与综合;挑战题可以留到复习阶段。
0 道 · 依次完成
3 道 · 依次完成
Contains Duplicate
为什么选:只需回答是否出现过,适合区分 Set 与 Map。
Two Sum
为什么选:训练“查询互补值后再写入”的标准哈希流程。
Valid Anagram
为什么选:把索引从元素位置迁移为字符计数。
1 道 · 依次完成
Group Anagrams
为什么选:需要自行设计能代表同一组异位词的键。
PERSONAL NOTEBOOK
笔记保存在当前浏览器