📑 本页目录(点开跳转)
00 · 怎么刷代码题
⏱ 6 分钟 | 先把“我看到题就空白”的问题关掉
🎯 一句话
代码题不是背答案:先把题目翻译成一个数据形状 + 一个变化动作 + 一个不变量,代码才会自己长出来。
🧭 这套题怎么读
每一题固定按五步讲:题目在问什么 → 先画什么 → 关键不变量 → 可运行代码 → 最容易错在哪里。
| 你现在想解决的事 | 从哪里开始 |
|---|---|
| 指针、链表一看就晕 | 01 链表 |
| 递归一写就炸 | 02 树 |
| 想学面试常用模板 | 03 栈队列与窗口 → 04 二分与排序 |
| 想练“怎么想出来” | 05 动态规划 → 06 回溯与矩阵 |
| 想补零碎高频题 | 07 位运算与模拟 → 08 字符串 |
🗺️ 题目地图:先知道每类题在解决什么
| 类别 | 你真正要解决的问题 | 本板块代表题 |
|---|---|---|
| 链表 | 节点没有下标,怎样不丢路 | 反转、合并、环入口、倒数第 k 个 |
| 树 | 一层分成多条路,怎样把结果带回来 | 深度、层序、路径和、最近公共祖先 |
| 栈与队列 | 只能从一端拿时,怎样记住“最近” | 两栈队列、min 栈、滑动窗口最大值 |
| 搜索与排序 | 不枚举全部,怎样砍掉不可能的半边 | 二分边界、旋转数组、最小 k 个数 |
| 动态规划 | 今天的最优,怎样由昨天的状态推出 | 连续子数组最大和、跳台阶、正则匹配 |
| 回溯 | 有分叉时,怎样试完一条再干净地回来 | 矩阵路径、机器人范围、排列 |
| 位运算与模拟 | 规则很机械,怎样逐步翻译而不漏边界 | 异或、加法、螺旋矩阵 |
| 字符串 | 输入很脏,怎样一格一格地吃进去 | atoi、回文、翻转、字符流 |
🧪 每题只做一个小闭环
- 先用 3–6 个元素手画一次,不急着敲代码。
- 用一句话写下循环里“始终为真”的事;这就是不变量。
- 把代码复制运行,至少换一个边界输入:空、一个元素、重复、极值。
- 卡 10 分钟时先看“关键不变量”,不要直接滚到完整代码。
⭐ 刷题的完成标准不是 AC 过一次,而是第二天遮住代码后还能说出:指针/下标各代表谁、每轮为什么不会漏。
🔗 这一章连到哪里
| 去哪 | 为什么 |
|---|---|
| Python 会咬你的地方 00 | 这里的代码全是 Python。⭐ 如果你被「改了 b 结果 a 也变了」「默认参数怎么记住上次的值」这类事咬过,那一套讲的就是它们 |
| ML 基础 附录C · 手撕代码速查 | ⭐ 另一类白板题:这里练的是链表/树/DP,那里是「用纯 numpy 写一个多头注意力」。算法岗两类都会被问 |
| 不靠数据的 AI 05 · 状态空间与搜索框架 | 这套题里的 BFS、DFS、回溯,在那一套里是同一个框架的不同实例:换的只是「下一个该展开谁」 |
🛑 可以停在这里
先记一句:题目换名字没关系;数据形状和不变量没换,解法就还在。
✅ 检查点
为什么不建议一上来就背模板?
👀 看答案
模板不知道该填哪个变量、什么时候停。先认出数据形状和不变量,模板才是省力工具,而不是另一段要背的文字。
⚡ 走神救援
- 一题先翻译成:数据形状、变化动作、不变量。
- 每章都有“怎么画、为什么这样写、边界在哪”。
- 不求一口气刷完;先把 01 的三个链表题真正跑通。