算法刷题方法论:从一道题刷三遍到三遍刷一道题
大一下开始刷 LeetCode,断断续续刷了 100 题左右。前期进步慢,后来调整方法后效率明显提升。这篇总结我的刷题方法论,核心就一句话:质量远比数量重要。
三个阶段的误区
误区1:贪多求快
一开始我每天刷 5 题,按难度排序从易到难刷。一个月刷了 100 题,但回过头看,刷过的题大部分只能记住"做过",根本不会重写。这是典型的"假装努力"。
误区2:看题解过早
一道题卡 10 分钟就去看题解,看完觉得"哦懂了",下次遇到同类还是不会。没经过痛苦思考的题解,记不牢。
误区3:不分类
按题号刷,今天 DP 明天图后天字符串,知识点无法形成体系。
我现在的刷题方法
一题三刷
- 第一遍:限时 30 分钟独立思考,做不出就看题解的思路(不看代码),自己写
- 第二遍(3 天后):不看任何提示重写,写不出说明没真懂,回到第一遍
- 第三遍(1 周后):尝试多种解法,比较时空复杂度,写最优解
按专题刷
按知识点专题推进,而不是按题号:
- 数组 / 双指针 / 滑动窗口
- 链表 / 栈 / 队列
- 二叉树 / BFS / DFS
- 回溯
- 动态规划(一维 → 二维 → 状态压缩)
- 图论基础
每个专题刷 15-20 题,集中突破一个知识点,比散着刷效率高 10 倍。
写题解笔记
每道题用自己的话写 3 句话:
- 这题考什么
- 我的解法核心思路
- 踩了什么坑
笔记不公开,只为强化记忆。用自己的话复述,是检验是否真懂的最好方式。
工具推荐
- LeetCode 官网:英文版讨论区题解质量更高
- labuladong 算法小抄:框架思维,适合入门
- 代码随想录:按专题分类清晰
心态
刷题是最反"突击"的事,每天 1-2 题坚持半年,比一天 10 题刷两周强太多。把它当成每天的"脑力体操",而不是任务。
算法不是面试的全部,但是过笔试的硬门槛。耐心刷,量变会引发质变。