LeetCode 刷题策略:按标签分类与时间规划
FreeGuideOnline
最新
2026-07-02
LeetCode 刷题策略:按标签分类与时间规划
为什么要用标签分类法刷题
LeetCode 题目数量庞大,盲目刷题很容易陷入“刷完就忘”的困境。按**标签(Tag)**分类练习,可以帮你:
- 建立知识体系:每个标签对应一种算法或数据结构,专项突破效率更高。
- 识别题目模式:同类题目解题框架相似,集中练习可以快速内化思路。
- 查漏补缺:通过标签正确率快速定位薄弱环节,避免在已掌握的领域浪费过多时间。
本教程将手把手教你规划一条循序渐进的标签刷题路线,并给出具体的时间管理模板。
第一步:核心标签分类与学习顺序
下表中的标签按出现频率和基础依赖关系排序,建议按顺序逐个攻破。
| 阶段 | 标签大类 | 代表标签 | 前置知识 |
|---|---|---|---|
| 1 | 线性基础 | 数组、字符串、链表、栈、队列 | 语言基础语法 |
| 2 | 查找与排序 | 二分查找、双指针、滑动窗口、排序算法 | 数组操作熟练 |
| 3 | 树与图入门 | 二叉树、N叉树、深度优先搜索 (DFS)、广度优先搜索 (BFS) | 递归基础 |
| 4 | 常见数据结构 | 哈希表、堆 (优先队列)、并查集 | 树、数组 |
| 5 | 算法思想 | 递归、回溯、贪心、动态规划 (DP) | 树、数组、链表 |
| 6 | 进阶专题 | 位运算、数学、图论、线段树等 | 前面所有内容 |
初学者不必学完所有标签才开始刷题,每个阶段掌握 30%-40% 的题目后即可进入下一阶段,保持知识的滚动巩固。
第二步:制定可执行的时间规划
一份有效的刷题计划包含每日数量、复习节奏和阶段目标。以下为通用的 8 周入门模板,假设每天投入 1~2 小时。
第 1–2 周:线性基础(数组、字符串、链表)
- 每日目标:3~5 道简单题(Easy),2 道中等题(Medium)
- 重点标签:
ArrayStringLinked ListTwo Pointers - 核心技巧:
- 链表操作固定使用哑节点(dummy node)
- 双指针解决大部分数组原地修改问题
- 字符串处理注意边界判空和回文判断的对称中心扩展法
- 周任务:完成每个标签下 8~10 道经典题,例如 “反转链表”、“合并两个有序数组”、“最长回文子串”
第 3–4 周:查找排序 + 哈希表(栈/队列穿插练习)
- 每日目标:2 道 Easy + 2 道 Medium,复习 1 道旧题
- 重点标签:
Binary SearchHash TableStackQueue - 核心技巧:
- 二分查找模板:左闭右闭区间,
mid = left + (right - left) // 2 - 哈希表常用于“两数之和”类问题,学会用
map代替双重循环 - 单调栈解决“下一个更大元素”等模式题
- 二分查找模板:左闭右闭区间,
- 周任务:完成至少 20 道二分和哈希专项题,开始接触滑动窗口模板(如 “无重复字符的最长子串”)
第 5–6 周:树与递归(DFS / BFS)
- 每日目标:3 道 Medium,1 道 Easy 复习
- 重点标签:
TreeDepth-first SearchBreadth-first Search - 核心技巧:
- 树的问题 80% 可以用递归解决,熟记前中后序遍历模板
- BFS 用于层序遍历,使用队列分层处理
- 递归三要素:终止条件、本层逻辑、返回值
- 周任务:完成 15~20 道二叉树经典题,包括路径和、对称树、最近公共祖先等
第 7–8 周:回溯与动态规划入门
- 每日目标:2 道回溯/DP 题 + 1 道旧题复习
- 重点标签:
BacktrackingDynamic Programming - 核心技巧:
- 回溯模板:
void backtrack(路径, 选择列表),注意剪枝 - DP 五步法:定义状态 → 状态转移方程 → 初始化 → 遍历顺序 → 举例验证
- 先从一维 DP(爬楼梯、打家劫舍)过渡到二维 DP(背包问题、最长公共子序列)
- 回溯模板:
- 周任务:完成 10~15 道回溯入门题和 10 道 经典 DP 题,总结模板
第三步:刷题中的高效复习方法
只刷不复习等于白刷。建议采用艾宾浩斯记忆曲线迭代复习:
- 当天:做完题立刻总结,记录解题框架和易错点。
- 第 1 天:重做前一天的错题,不看答案尝试回忆思路。
- 第 3 天:快速回顾该题核心步骤,可只写伪代码。
- 第 7 天:再次重做,看能否优化或举一反三。
工具推荐:使用 Anki 或 Excel 表格记录每道题的标签、难度、是否独立做出、关键思路、下次复习日期。
第四步:当标签熟练后——混合训练
当你完成前 6 周的计划后,应进入随机组题模式,模拟真实面试:
- 每周 3 次限时训练:30 分钟完成 1 道 Medium 或 45 分钟完成 2 道 Easy+Medium。
- 主题混合日:例如“数组 + 哈希”组合题,训练快速识别标签的能力。
- 定期参加周赛:LeetCode 每周日有周赛,实战检验综合能力,感受时间压力。
常见标签速查表与优先级
以下列出高频面试标签,建议优先刷足数量:
| 标签 | 建议刷题量 | 经典题举例 |
|---|---|---|
| 数组/字符串 | 30+ | 螺旋矩阵、最长回文子串 |
| 双指针 | 20+ | 三数之和、接雨水 |
| 哈希表 | 25+ | 字母异位词分组、LRU 缓存 |
| 链表 | 20+ | 环形链表、K 个一组翻转链表 |
| 树 | 30+ | 二叉树的序列化、二叉搜索树中第 K 小的元素 |
| 回溯 | 20+ | 全排列、子集、N 皇后 |
| 动态规划 | 30+ | 最长递增子序列、零钱兑换、编辑距离 |
| 二分查找 | 15+ | 搜索旋转排序数组、寻找峰值 |
| 堆/优先队列 | 10+ | 前 K 个高频元素、合并 K 个升序链表 |
| 图 | 10+ | 岛屿数量、课程表 |
避免刷题的大坑
- 盲目追求数量:同一类型题反复刷出感觉比快速刷 200 题更重要。
- 只看不写:必须脱离 IDE,在 LeetCode 编辑器里完整写代码,并调试通过。
- 忽略复杂度分析:每道题做完后都要分析时间/空间复杂度,养成面试习惯。
- 不看题解区讨论:官方题解和高赞回复往往有多种解法,对比学习可以快速拓宽思路。
- 长时间怼同一道题:如果 30 分钟没有思路,果断看题解,理解后第二天重做,不要硬耗。
按照以上标签分类规划和周计划执行,两个月后你将拥有扎实的数据结构与算法基础,足以应对绝大多数技术笔试和面试。记住:总结模板 + 刻意练习 + 周期性复习,才是高效刷题的终极密码。