总复盘:错题本怎么记,二刷怎么做,面试前怎么临时突击
很多实习生刷算法时,最容易陷入一个错觉:只要每天题数够多,最后总能练出来。但真正到面试现场,最容易暴露的问题往往不是"题没见过",而是下面这 4 件事一直没解决:
- 同一类错误反复出现,但没有被系统记录下来。
- 题解看懂了,却没有转成自己的语言和判断框架。
- 二刷只是重新看题,而不是重新独立做题。
- 面试前没有一份能在 10 分钟内快速回看的材料。
所以这篇总复盘不继续加新题,而是专门解决"怎么把做过的题真正变成自己会的东西"。如果你已经把前面 10 类高频题刷过一轮,这篇文章的目标不是再给你更多题,而是帮你把这轮输入压实成 3 种能力:
- 能复盘失败路径。
- 能安排有效二刷。
- 能在面试前用最少时间把高频知识重新激活。
文章目录
- 总复盘:错题本怎么记,二刷怎么做,面试前怎么临时突击
-
- [1. 这篇文章解决什么问题](#1. 这篇文章解决什么问题)
- [2. 错题本到底记什么:记失败链路,不记题解仓库](#2. 错题本到底记什么:记失败链路,不记题解仓库)
- [3. 真实错题本样例:拿二分题演示一条记录应该怎么写](#3. 真实错题本样例:拿二分题演示一条记录应该怎么写)
- [4. 哪些题必须进错题本,哪些题不值得记](#4. 哪些题必须进错题本,哪些题不值得记)
- [5. 二刷到底怎么做:不是重看题解,而是重新独立做题](#5. 二刷到底怎么做:不是重看题解,而是重新独立做题)
-
- 第一次做完当天
- [第 2 到 3 天](#第 2 到 3 天)
- [第 7 天左右](#第 7 天左右)
- [6. 错误二刷方式 vs 正确二刷方式](#6. 错误二刷方式 vs 正确二刷方式)
- [7. A / B / C / D 分层法:做完一轮题后,优先级怎么排](#7. A / B / C / D 分层法:做完一轮题后,优先级怎么排)
- [8. 复盘分析:用本专栏里的真实样例看,什么叫"值得复盘的错误"](#8. 复盘分析:用本专栏里的真实样例看,什么叫“值得复盘的错误”)
-
- [样例 1:二分题的典型错误不是"不会写",而是边界不统一](#样例 1:二分题的典型错误不是“不会写”,而是边界不统一)
- [样例 2:图论题的典型错误不是"没学过",而是题型识别慢](#样例 2:图论题的典型错误不是“没学过”,而是题型识别慢)
- [样例 3:动态规划题的典型错误不是"公式忘了",而是状态定义不稳](#样例 3:动态规划题的典型错误不是“公式忘了”,而是状态定义不稳)
- [9. 面试前最后几天怎么临时突击:压缩复习,不再扩面](#9. 面试前最后几天怎么临时突击:压缩复习,不再扩面)
-
- [只剩 3 天时的建议安排](#只剩 3 天时的建议安排)
- [每天最少做的 4 件事](#每天最少做的 4 件事)
- [10. 面试里最常见的表达失误,以及一套可复用说法](#10. 面试里最常见的表达失误,以及一套可复用说法)
- [11. 一轮之后该怎么继续:不是立刻冲难题,而是先把体系补完整](#11. 一轮之后该怎么继续:不是立刻冲难题,而是先把体系补完整)
- [12. 这套方法的适用边界:什么时候有用,什么时候没用](#12. 这套方法的适用边界:什么时候有用,什么时候没用)
- [13. 快速验证:你现在的复盘是不是有效的](#13. 快速验证:你现在的复盘是不是有效的)
- [14. 最后总结:别再用"今天刷了几道题"衡量自己](#14. 最后总结:别再用“今天刷了几道题”衡量自己)
1. 这篇文章解决什么问题
这篇不是题解合集,而是一份"刷完一轮之后怎么把分数提上去"的执行指南。你读完至少应该能解决 4 个具体问题:
- 错题本到底该记什么,哪些内容不值得记。
- 二刷怎么安排才不是假复习。
- 已经做过 10 类题型后,下一步优先级怎么排。
- 距离面试只剩几天时,应该怎样压缩复习。
如果这些问题不先解决,继续盲目开新题,通常只会把"做过很多题"和"真正会做题"之间的差距拉得更大。
2. 错题本到底记什么:记失败链路,不记题解仓库
错题本最常见的误区,是把它写成题解抄录本。那样看起来内容很多,但面试前几乎没有复用价值。
真正有用的错题本,核心不是"标准答案是什么",而是"我第一次为什么会错,下次怎么更快识别出来"。一条记录至少要覆盖 9 个字段:
md
## 题号 + 题名
- 日期:
- 来源:
- 难度:
- 题型标签:
- 当前状态:未掌握 / 需二刷 / 基本掌握 / 已掌握
### 1. 题目关键信息
- 题目要我求什么:
- 输入输出特点:
- 有哪些明显限制:
### 2. 我第一次的思路
- 我一开始想到的做法:
- 为什么这个做法不够好 / 不对:
### 3. 我的卡点
- 是哪一步卡住了:
- 属于哪类问题:
- 题型没识别出来
- 模板不熟
- 边界没处理好
- Java API 不熟
- 复杂度判断错了
### 4. 正确思路
- 正确题型归类:
- 核心思路:
- 关键步骤:
### 5. Java 易错点
- 哪些 API 容易写错:
- 哪些判空 / 下标 / 去重细节要注意:
### 6. 复杂度
- 时间复杂度:
- 空间复杂度:
### 7. 识别信号
- 下次看到什么特征,我应该立刻想到这种做法:
### 8. 二刷安排
- 下次重做日期:
- 二刷目标:
### 9. 二刷结果
- 是否独立做出:
- 还剩什么问题:
这里真正值钱的字段只有 3 类:
- 我第一次为什么错。
- 这题下次怎么更快识别。
- 二刷以后到底还有没有问题。
如果一条记录里没有这三类信息,那它大概率只是"你看过一次的题解",不是能帮你涨面试命中率的错题本。
3. 真实错题本样例:拿二分题演示一条记录应该怎么写
只给模板还不够,这一节直接拿高频二分题做一个真实样例。
题目可以选:
34. 在排序数组中查找元素的第一个和最后一个位置
这道题很适合进错题本,因为它非常容易出现"我以为自己会二分,但一到边界题就开始乱"的情况。
md
## 34. 在排序数组中查找元素的第一个和最后一个位置
- 日期:2026-07-17
- 来源:LeetCode 热题 100
- 难度:Medium
- 题型标签:二分 / 左右边界
- 当前状态:需二刷
### 1. 题目关键信息
- 题目要我求什么:目标值第一次和最后一次出现的位置
- 输入输出特点:有序数组,可能有重复值,不存在时返回 [-1, -1]
- 有哪些明显限制:需要 O(log n)
### 2. 我第一次的思路
- 我一开始想到的做法:普通二分找到 target 后直接向两边扩
- 为什么这个做法不够好 / 不对:最坏会退化成 O(n),不满足题目要求
### 3. 我的卡点
- 是哪一步卡住了:命中 target 后,不知道该停还是继续收缩
- 属于哪类问题:
- 题型没完全识别出来
- 边界没处理好
### 4. 正确思路
- 正确题型归类:左右边界二分
- 核心思路:分别做两次二分,一次找最左位置,一次找最右位置
- 关键步骤:命中 target 后不能立刻返回,而是继续向左或向右压缩
### 5. Java 易错点
- `mid` 已比较过,边界更新必须排除 `mid`
- 左右边界逻辑不能混在同一个分支里
### 6. 复杂度
- 时间复杂度:O(log n)
- 空间复杂度:O(1)
### 7. 识别信号
- 有序数组
- 重复值
- 问"第一次 / 最后一次出现位置"
- 明确要求 O(log n)
### 8. 二刷安排
- 下次重做日期:2 天后
- 二刷目标:不看题解独立写出 findLeft / findRight
### 9. 二刷结果
- 是否独立做出:是
- 还剩什么问题:面试里解释"命中后为什么不能停"还需要再练
这条样例真正有价值的地方,不在于写了多少字,而在于它把错误来源拆开了:
- 不是"不会二分"。
- 而是"不会边界二分"。
- 再往下拆,是"命中目标后不清楚是否继续收缩"。
只有这样拆,你下一次看到同类题时,识别速度才会真的变快。
4. 哪些题必须进错题本,哪些题不值得记
不是每一道题都值得单独记录。建议只记下面几类:
- 完全不会做。
- 能想到方向,但写不出来。
- 代码大体对,但边界反复错。
- 能 AC,但说不清为什么。
- Java 写法不熟,靠试错才过。
而下面这几类题,通常不值得花太多时间记:
- 看一眼就会,15 分钟内能稳定写出的基础题。
- 只是手误导致的小拼写错误。
- 你已经连续两次独立做对、讲解也顺的题。
对实习面试来说,最有价值的错题往往不是最难的题,而是那些"你以为会,结果又错了"的中档题。因为面试真正拉开差距的,恰恰是这种题。
5. 二刷到底怎么做:不是重看题解,而是重新独立做题
二刷最容易做假的地方,是"重新看一遍题解就当复习过了"。这对提高面试表现帮助很小,因为你训练到的是识别别人答案,不是自己稳定输出。
更有效的做法是把二刷拆成 3 段:
第一次做完当天
- 只整理卡点,不求完全背会。
- 目标是把"为什么错"先固定下来。
第 2 到 3 天
- 不看题解,重新写一遍。
- 写完再检查:是否还能讲清楚状态、边界、复杂度。
第 7 天左右
- 抽查同题型代表题。
- 看看是否还能在限定时间里稳定写出。
二刷时至少要问自己 3 个问题:
- 这题我现在能不能先归类。
- 这题我还能不能独立写出核心代码。
- 如果面试官追问为什么,我能不能讲清楚。
这 3 个问题里,只要有一个答不上来,这题就不能算"真正掌握"。
6. 错误二刷方式 vs 正确二刷方式
这部分很多人平时不会专门总结,但它对提分很关键。
| 场景 | 错误做法 | 正确做法 |
|---|---|---|
| 第一次做完当天 | 直接把标准题解抄满一页 | 先记录自己卡在哪、为什么错 |
| 第 2 到 3 天 | 打开题解对着再看一遍 | 不看题解独立重写,写完再对答案 |
| 第 7 天 | 继续开新题 | 抽查同类题,验证是否真的稳定 |
| 面试前 | 到处找新题和新讲解 | 只看自己的错题本和高频速记 |
为什么错误做法无效:
- 它只能给你"我好像见过"的熟悉感。
- 但面试里真正要用的是"我现在能不能独立做"和"我能不能解释为什么"。
所以二刷不是为了让自己看着更努力,而是为了验证:这道题到底有没有从"做过"升级成"会做"。
7. A / B / C / D 分层法:做完一轮题后,优先级怎么排
做完一轮题之后,建议把题分成 4 类:
- A 类:看到题就能归类,15 分钟左右能独立写出来。
- B 类:有思路,但边界容易卡。
- C 类:知道大概方向,但无法稳定写对。
- D 类:题型识别就不稳定。
这时候最重要的不是分类本身,而是后续动作:
- 先重刷
C + D - 再限时重刷
B A只做抽查
很多人后面越刷越乱,问题就出在这里:明明 C + D 还很多,却继续开新题。这会让知识面越来越宽,但命中率并没有真正提高。
你可以把这个分层法理解成一个简单的资源分配原则:
A类不缺认知,缺的是偶尔回温。B类不缺方向,缺的是边界稳定性。C + D类才是真正影响面试通过率的风险区。
8. 复盘分析:用本专栏里的真实样例看,什么叫"值得复盘的错误"
前面几期文章里,其实已经出现了很典型的复盘样本。
样例 1:二分题的典型错误不是"不会写",而是边界不统一
在二分类题里,真正高频的失误不是找不到 mid,而是:
- 闭区间和左闭右开混着写。
mid比较后没有被排除出区间。- 找边界题时命中后直接返回。
这类错误特别适合写进错题本,因为它们不是单题问题,而是一整类题都会反复出现的模式问题。
样例 2:图论题的典型错误不是"没学过",而是题型识别慢
前面的图论复盘里,有两个真实验证结果:
text
numIslands=2
canFinish=true
这两个结果背后其实对应两种完全不同的能力:
200. 岛屿数量要先识别"这是网格连通块"。207. 课程表要先识别"这是依赖图判环"。
如果错题本里只记代码,不记"下次看到什么特征要立刻想到 DFS / BFS / 拓扑排序",那这份材料对下一次面试帮助会很有限。
样例 3:动态规划题的典型错误不是"公式忘了",而是状态定义不稳
动态规划那期已经做过本地样例验证:
text
climbStairs(5)=8
coinChange([1,2,5],11)=3
这类题真正值得记录的,不是最后答案本身,而是:
dp[i]到底表示什么。- 初始化为什么这样设。
- 不可达状态有没有被错误参与转移。
这就是为什么高质量错题本里一定要有"识别信号"和"卡点类型",不能只剩一段代码。
9. 面试前最后几天怎么临时突击:压缩复习,不再扩面
如果距离面试只剩几天,不要再按"每天新学一个题型"的节奏走,而应该切换成压缩复习模式。
只剩 3 天时的建议安排
| 时间 | 任务 | 目标 |
|---|---|---|
| 第 1 天 | 回看 2 个高风险题型的错题本 + 各抽 2 题重写 | 恢复题型识别和代码手感 |
| 第 2 天 | 回看 2 个高频题型的 3 分钟速记 + 口述 5 题 | 压实表达和复杂度说明 |
| 第 3 天 | 只抽 A/B/C/D 里的 C + D 题 | 优先消灭最危险短板 |
每天最少做的 4 件事
- 回看 2 个题型的速记。
- 每个题型抽 1 道基础题和 1 道 Medium 题限时重写。
- 只翻自己的错题本,不再广泛找新题解。
- 至少口述 3 道题的思路和复杂度。
你现在要做的不是继续扩大知识面,而是把已经见过的高频内容压实成"可输出状态"。
10. 面试里最常见的表达失误,以及一套可复用说法
很多人题做得不差,但表达一塌糊涂。最常见的问题有:
- 一上来就讲代码细节,不先讲题型。
- 不先说暴力解和优化方向。
- 复杂度只会背,不知道为什么。
- 明明是模板题,却讲不清变量含义或状态定义。
建议统一按这个顺序说:
text
这题我先把它归类为 ____。
如果直接暴力做,复杂度大概是 ____。
更合适的做法是 ____,核心在于维护 ____。
关键边界是 ____。
这样时间复杂度是 ____,空间复杂度是 ____。
这套说法的好处,不是"显得专业",而是它能强迫你把题型、优化点、边界和复杂度都交代完整。你一旦能稳定照这个顺序说,面试里的表达质量会明显上一个台阶。
11. 一轮之后该怎么继续:不是立刻冲难题,而是先把体系补完整
如果这 10 类题型过完、二刷也做过一轮,下一步建议这样推进:
- 每类题型再补 2 到 3 道同类题。
- 开始限时模式,35 到 45 分钟做 1 道。
- 把 Java 八股和项目问答补起来,不要只刷算法。
- 按真实面试节奏练"说题 + 写题"。
算法只是实习面试的一部分,但它非常适合训练结构化表达。你把算法讲题练稳,对后面的项目问答、自我介绍和八股表达也会有直接帮助。
12. 这套方法的适用边界:什么时候有用,什么时候没用
这部分如果不说清楚,整篇文章就容易变成"谁都适用的空建议"。
这套复盘法更适合下面这类人:
- 已经刷过一轮高频题。
- 题目见过不少,但稳定性不够。
- 面试前时间有限,需要快速收敛。
它不太适合下面这种情况:
- 你连基础题型都没系统刷过一轮。
- 你还处在"题都没见过"的早期阶段。
- 你当前最大的短板不是算法,而是 Java 基础、项目表达或沟通问题。
也就是说,这篇文章解决的是"如何把已学内容压实",不是"如何从零开始学算法"。
13. 快速验证:你现在的复盘是不是有效的
你可以用下面 4 个问题,快速判断自己的复盘到底有没有用:
- 你能不能拿出一条真实的错题记录,而不是一堆收藏的题解链接。
- 你最近二刷的题,能不能不看题解独立写出来。
- 你是否知道自己当前的
C + D题到底有哪些。 - 你能不能用 30 秒讲清楚一道高频题的题型、边界和复杂度。
如果这 4 个问题里有 3 个答不上来,那问题通常不是"题刷得不够多",而是"复盘没有形成闭环"。
14. 最后总结:别再用"今天刷了几道题"衡量自己
对实习面试更有意义的问题,其实只有这 3 个:
- 我今天有没有多掌握一个题型。
- 我有没有把一类错误真正改掉。
- 我能不能把一题讲清楚。
如果这三件事在持续发生,你这轮算法冲刺就是有效的。
真正能把面试分数拉开的,从来不是"做过多少题",而是"你能不能把已经做过的题,稳定地重新做出来、讲出来、复用出来"。
上期速递:【Java实习面试算法冲刺】动态规划
感谢阅读,记得点赞、关注、收藏,欢迎各位评论区交流!!!