返回全部文章

算法复盘模板:把“做过”变成“掌握”

很多人刷题的问题不是刷得少,而是刷完之后什么都没留下。

很多人刷题的问题不是刷得少,而是刷完之后什么都没留下。

如果你每次做题都只停在“过了”或者“看懂了”,那这道题很快就会从记忆里滑走。

我更建议的复盘模板

每做完一道题,至少记录下面这些内容。

1. 题目类型

  • 这题表面是什么问题
  • 它本质属于哪类方法

例如:

  • 表面上是数组题
  • 本质上是滑动窗口 / 前缀和 / 动态规划

2. 我卡在哪里

不要只记“不会”,要记清楚:

  • 我是没看出题型
  • 还是看出题型但不会实现
  • 还是实现了但复杂度不对

这一步很重要,因为不同卡点对应的学习策略完全不同。

3. 正确思路的突破口

这一题真正转折的地方是什么?

例如:

  • 先排序
  • 利用哈希记录状态
  • 用状态定义避免重复计算
  • 发现可以维护一个窗口而不是每次重算

4. 错误思路为什么错

这一点经常被忽略,但它非常重要。

你要写清楚:

  • 为什么最开始的方法会超时
  • 为什么会漏情况
  • 为什么这个思路虽然看起来顺,但本质上不成立

只有把“错的原因”讲清楚,下一次你才会更快排除错误方向。

5. 下次怎么更快识别

最后补一句最关键的话:

以后如果再遇到类似题,我先看什么。

例如:

  • 先看是否存在单调性
  • 先看是否存在重复子问题
  • 先看是否可以通过排序压缩问题
  • 先看是否能把暴力枚举转成增量维护

一个简单复盘示例

题型:数组 + 滑动窗口
卡点:一开始只会双层循环枚举区间,复杂度过高
突破口:窗口右移时不重算,而是维护区间状态
错误原因:把每个区间都当成独立问题处理
下次识别:看到连续区间 + 条件约束时,优先考虑窗口

结论

复盘模板的意义不是让笔记更好看,而是让你每做完一道题之后,真的多留下一点可以迁移的东西。

因为算法能力增长的关键不是“今天做了多少”,而是:

下次遇到类似问题时,你能不能更快地认出来。