【Java实习面试算法冲刺】总复盘

总复盘:错题本怎么记,二刷怎么做,面试前怎么临时突击

很多实习生刷算法时,最容易陷入一个错觉:只要每天题数够多,最后总能练出来。但真正到面试现场,最容易暴露的问题往往不是"题没见过",而是下面这 4 件事一直没解决:

  • 同一类错误反复出现,但没有被系统记录下来。
  • 题解看懂了,却没有转成自己的语言和判断框架。
  • 二刷只是重新看题,而不是重新独立做题。
  • 面试前没有一份能在 10 分钟内快速回看的材料。

所以这篇总复盘不继续加新题,而是专门解决"怎么把做过的题真正变成自己会的东西"。如果你已经把前面 10 类高频题刷过一轮,这篇文章的目标不是再给你更多题,而是帮你把这轮输入压实成 3 种能力:

  1. 能复盘失败路径。
  2. 能安排有效二刷。
  3. 能在面试前用最少时间把高频知识重新激活。

文章目录

  • 总复盘:错题本怎么记,二刷怎么做,面试前怎么临时突击
    • [1. 这篇文章解决什么问题](#1. 这篇文章解决什么问题)
    • [2. 错题本到底记什么:记失败链路,不记题解仓库](#2. 错题本到底记什么:记失败链路,不记题解仓库)
    • [3. 真实错题本样例:拿二分题演示一条记录应该怎么写](#3. 真实错题本样例:拿二分题演示一条记录应该怎么写)
    • [4. 哪些题必须进错题本,哪些题不值得记](#4. 哪些题必须进错题本,哪些题不值得记)
    • [5. 二刷到底怎么做:不是重看题解,而是重新独立做题](#5. 二刷到底怎么做:不是重看题解,而是重新独立做题)
    • [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 个问题:

  1. 这题我现在能不能先归类。
  2. 这题我还能不能独立写出核心代码。
  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 件事

  1. 回看 2 个题型的速记。
  2. 每个题型抽 1 道基础题和 1 道 Medium 题限时重写。
  3. 只翻自己的错题本,不再广泛找新题解。
  4. 至少口述 3 道题的思路和复杂度。

你现在要做的不是继续扩大知识面,而是把已经见过的高频内容压实成"可输出状态"。

10. 面试里最常见的表达失误,以及一套可复用说法

很多人题做得不差,但表达一塌糊涂。最常见的问题有:

  • 一上来就讲代码细节,不先讲题型。
  • 不先说暴力解和优化方向。
  • 复杂度只会背,不知道为什么。
  • 明明是模板题,却讲不清变量含义或状态定义。

建议统一按这个顺序说:

text 复制代码
这题我先把它归类为 ____。
如果直接暴力做,复杂度大概是 ____。
更合适的做法是 ____,核心在于维护 ____。
关键边界是 ____。
这样时间复杂度是 ____,空间复杂度是 ____。

这套说法的好处,不是"显得专业",而是它能强迫你把题型、优化点、边界和复杂度都交代完整。你一旦能稳定照这个顺序说,面试里的表达质量会明显上一个台阶。

11. 一轮之后该怎么继续:不是立刻冲难题,而是先把体系补完整

如果这 10 类题型过完、二刷也做过一轮,下一步建议这样推进:

  1. 每类题型再补 2 到 3 道同类题。
  2. 开始限时模式,35 到 45 分钟做 1 道。
  3. 把 Java 八股和项目问答补起来,不要只刷算法。
  4. 按真实面试节奏练"说题 + 写题"。

算法只是实习面试的一部分,但它非常适合训练结构化表达。你把算法讲题练稳,对后面的项目问答、自我介绍和八股表达也会有直接帮助。

12. 这套方法的适用边界:什么时候有用,什么时候没用

这部分如果不说清楚,整篇文章就容易变成"谁都适用的空建议"。

这套复盘法更适合下面这类人:

  • 已经刷过一轮高频题。
  • 题目见过不少,但稳定性不够。
  • 面试前时间有限,需要快速收敛。

它不太适合下面这种情况:

  • 你连基础题型都没系统刷过一轮。
  • 你还处在"题都没见过"的早期阶段。
  • 你当前最大的短板不是算法,而是 Java 基础、项目表达或沟通问题。

也就是说,这篇文章解决的是"如何把已学内容压实",不是"如何从零开始学算法"。

13. 快速验证:你现在的复盘是不是有效的

你可以用下面 4 个问题,快速判断自己的复盘到底有没有用:

  1. 你能不能拿出一条真实的错题记录,而不是一堆收藏的题解链接。
  2. 你最近二刷的题,能不能不看题解独立写出来。
  3. 你是否知道自己当前的 C + D 题到底有哪些。
  4. 你能不能用 30 秒讲清楚一道高频题的题型、边界和复杂度。

如果这 4 个问题里有 3 个答不上来,那问题通常不是"题刷得不够多",而是"复盘没有形成闭环"。

14. 最后总结:别再用"今天刷了几道题"衡量自己

对实习面试更有意义的问题,其实只有这 3 个:

  • 我今天有没有多掌握一个题型。
  • 我有没有把一类错误真正改掉。
  • 我能不能把一题讲清楚。

如果这三件事在持续发生,你这轮算法冲刺就是有效的。

真正能把面试分数拉开的,从来不是"做过多少题",而是"你能不能把已经做过的题,稳定地重新做出来、讲出来、复用出来"。


上期速递:【Java实习面试算法冲刺】动态规划

感谢阅读,记得点赞、关注、收藏,欢迎各位评论区交流!!!

相关推荐
從南走到北1 小时前
JAVA无人共享系统无人场馆预约篮球系统源码支持小程序+公众号+APP+H5
java·开发语言·小程序
码智社1 小时前
Maven 零基础完整教程
java·开发语言·maven
半夜修仙1 小时前
Spring集成邮箱功能
java·开发语言·spring boot·spring·rabbitmq·github·maven
曾阿伦1 小时前
Maven 构建工程化指南
java·maven
宠友信息1 小时前
从重复请求到订单同步看内容社区源码的处理思路
java·spring boot·redis·后端·mysql·spring
带刺的坐椅1 小时前
用 Solon TeamAgent 落地供应链异常管理与自动补货
java·ai·llm·agent·solon·供应链
DFT计算杂谈1 小时前
DeepSeek 集群服务器无root本地部署指南
数据库·人工智能·python·opencv·算法
潇凝子潇1 小时前
UnsupportedOperationException
java·前端·数据库
qq_454245031 小时前
GraphFoundation — 通用图基础框架
算法·架构