算法复盘模板:把“做过”变成“掌握”
很多人刷题的问题不是刷得少,而是刷完之后什么都没留下。
很多人刷题的问题不是刷得少,而是刷完之后什么都没留下。
如果你每次做题都只停在“过了”或者“看懂了”,那这道题很快就会从记忆里滑走。
我更建议的复盘模板
每做完一道题,至少记录下面这些内容。
1. 题目类型
- 这题表面是什么问题
- 它本质属于哪类方法
例如:
- 表面上是数组题
- 本质上是滑动窗口 / 前缀和 / 动态规划
2. 我卡在哪里
不要只记“不会”,要记清楚:
- 我是没看出题型
- 还是看出题型但不会实现
- 还是实现了但复杂度不对
这一步很重要,因为不同卡点对应的学习策略完全不同。
3. 正确思路的突破口
这一题真正转折的地方是什么?
例如:
- 先排序
- 利用哈希记录状态
- 用状态定义避免重复计算
- 发现可以维护一个窗口而不是每次重算
4. 错误思路为什么错
这一点经常被忽略,但它非常重要。
你要写清楚:
- 为什么最开始的方法会超时
- 为什么会漏情况
- 为什么这个思路虽然看起来顺,但本质上不成立
只有把“错的原因”讲清楚,下一次你才会更快排除错误方向。
5. 下次怎么更快识别
最后补一句最关键的话:
以后如果再遇到类似题,我先看什么。
例如:
- 先看是否存在单调性
- 先看是否存在重复子问题
- 先看是否可以通过排序压缩问题
- 先看是否能把暴力枚举转成增量维护
一个简单复盘示例
题型:数组 + 滑动窗口
卡点:一开始只会双层循环枚举区间,复杂度过高
突破口:窗口右移时不重算,而是维护区间状态
错误原因:把每个区间都当成独立问题处理
下次识别:看到连续区间 + 条件约束时,优先考虑窗口
结论
复盘模板的意义不是让笔记更好看,而是让你每做完一道题之后,真的多留下一点可以迁移的东西。
因为算法能力增长的关键不是“今天做了多少”,而是:
下次遇到类似问题时,你能不能更快地认出来。