核心策略
- 每天 2-3 小时:1 小时学习/复习思路,1-2 小时编码实践
- 先易后难:每个类别从简单题开始建立信心
- 重复刷:第 5、15、25 天安排“复习日”回顾做错的题
- 重视总结:每周末整理本周解题模板/常见套路
| 天数 | 题目 | 难度 | 备注 |
|---|---|---|---|
| Day1 | 88. 合并两个有序数组 | 简单 | 逆向双指针 |
| 27. 移除元素 | 简单 | 快慢指针 | |
| 26. 删除有序数组中的重复项 | 简单 | 快慢指针 | |
| Day2 | 80. 删除有序数组中的重复项 II | 中等 | 通用去重模板 |
| 169. 多数元素 | 简单 | 摩尔投票法 | |
| 189. 轮转数组 | 中等 | 三次翻转 / 取模 | |
| Day3 | 121. 买卖股票的最佳时机 | 简单 | 一次遍历 |
| 122. 买卖股票的最佳时机 II | 中等 | 贪心累加正利润 | |
| 55. 跳跃游戏 | 中等 | 贪心最远可达 | |
| Day4 | 45. 跳跃游戏 II | 中等 | 贪心(最少步数) |
| 274. H指数 | 中等 | 计数排序 / 二分 | |
| 380. O(1) 插入删除获取随机 | 中等 | 哈希表+数组 | |
| Day5 | 复习日 | 重做前4天中不熟的题 | |
| Day6 | 238. 除自身以外数组乘积 | 中等 | 前缀积×后缀积 |
| 134. 加油站 | 中等 | 贪心(总油量判断) | |
| 135. 分发糖果 | 困难 | 两次遍历 | |
| Day7 | 42. 接雨水 | 困难 | 双指针 / 单调栈(尽力理解) |
| 58. 最后一个单词长度 | 简单 | 反向遍历 | |
| 14. 最长公共前缀 | 简单 | 逐列/逐词比较 |
| 天数 | 题目 | 难度 | 备注 |
|---|---|---|---|
| Day8 | 151. 反转字符串中的单词 | 中等 | 整体反转+单词反转 |
| 6. Z字形变换 | 中等 | 找规律 / 模拟行 | |
| 28. 找出字符串中第一个匹配项 | 简单 | KMP或内置API | |
| Day9 | 125. 验证回文串 | 简单 | 双指针 + 字母数字判断 |
| 392. 判断子序列 | 简单 | 双指针 / 预处理好 | |
| 167. 两数之和 II | 中等 | 双指针(有序数组) | |
| Day10 | 11. 盛最多水的容器 | 中等 | 双指针(短板移动) |
| 15. 三数之和 | 中等 | 排序 + 固定+双指针(去重) | |
| 209. 长度最小的子数组 | 中等 | 滑动窗口(不定长) | |
| Day11 | 3. 无重复字符的最长子串 | 中等 | 滑动窗口+哈希 |
| 30. 串联所有单词的子串 | 困难 | 滑动窗口+哈希(可先看题解) | |
| Day12 | 复习日 | 重点复习滑动窗口双指针模板 | |
| Day13 | 76. 最小覆盖子串 | 困难 | 滑动窗口(需哈希计数) |
| 36. 有效的数独 | 中等 | 哈希集合 / 位运算 | |
| Day14 | 54. 螺旋矩阵 | 中等 | 边界模拟 |
| 48. 旋转图像 | 中等 | 先转置再翻转 |
| 天数 | 题目 | 难度 | 备注 |
|---|---|---|---|
| Day15 | 73. 矩阵置零 | 中等 | 用首行首列标记 |
| 289. 生命游戏 | 中等 | 复合状态 | |
| 383. 赎金信 | 简单 | 哈希计数 | |
| Day16 | 205. 同构字符串 | 简单 | 双向哈希映射 |
| 290. 单词规律 | 简单 | 同构字符串变形 | |
| 242. 有效的字母异位词 | 简单 | 排序 / 哈希 | |
| Day17 | 49. 字母异位词分组 | 中等 | 排序后作为键 |
| 1. 两数之和 | 简单 | 哈希表(一遍) | |
| 202. 快乐数 | 简单 | 哈希集合判环 | |
| Day18 | 219. 存在重复元素 II | 简单 | 滑动窗口+哈希 |
| 128. 最长连续序列 | 中等 | 哈希集合(O(n)) | |
| 228. 汇总区间 | 简单 | 一次遍历 | |
| Day19 | 56. 合并区间 | 中等 | 排序 + 合并 |
| 57. 插入区间 | 中等 | 模拟插入合并 | |
| 452. 用最少箭引爆气球 | 中等 | 区间排序(右端点贪心) | |
| Day20 | 复习日 | 重做哈希/区间/矩阵题 | |
| Day21 | 20. 有效的括号 | 简单 | 栈+哈希映射 |
| 71. 简化路径 | 中等 | 栈 + split | |
| 155. 最小栈 | 中等 | 辅助栈存最小值 | |
| Day22 | 150. 逆波兰表达式求值 | 中等 | 栈(注意整数除法) |
| 141. 环形链表 | 简单 | 快慢指针 | |
| 2. 两数相加 | 中等 | 模拟进位 | |
| Day23 | 21. 合并两个有序链表 | 简单 | 迭代/递归 |
| 138. 随机链表复制 | 中等 | 哈希映射 / 原地拆分 | |
| 92. 反转链表 II | 中等 | 穿针引线 |
| 天数 | 题目 | 难度 | 备注 |
|---|---|---|---|
| Day24 | 25. K个一组翻转链表 | 困难 | 先做反转链表,再分组 |
| 19. 删除倒数第N个结点 | 中等 | 快慢指针(哑结点) | |
| 146. LRU缓存 | 中等 | 哈希+双向链表 | |
| Day25 | 复习日 | 重做所有链表题 | |
| Day26 | 104. 二叉树最大深度 | 简单 | DFS / BFS |
| 100. 相同的树 | 简单 | 递归比较 | |
| 226. 翻转二叉树 | 简单 | 递归交换 | |
| Day27 | 101. 对称二叉树 | 简单 | 递归/迭代双队列 |
| 102. 二叉树层序遍历 | 中等 | BFS模板 | |
| 199. 二叉树右视图 | 中等 | 层序遍历取最后一个 | |
| Day28 | 105. 从前序中序构造二叉树 | 中等 | 分治 + 哈希索引 |
| 114. 二叉树展开为链表 | 中等 | 后序遍历 / 迭代 | |
| 236. 二叉树的最近公共祖先 | 中等 | 递归后序 | |
| Day29 | 200. 岛屿数量 | 中等 | DFS / BFS |
| 17. 电话号码字母组合 | 中等 | 回溯(哈希映射) | |
| 53. 最大子数组和 | 中等 | Kadane算法 | |
| Day30 | 总复习 | 快速过一遍所有做过的题,重点看错题和困难题思路 |
- 困难题(如 42 接雨水、76 最小覆盖子串):一次做不出来很正常,先看题解理解思路,一周后再独立写一遍。
- 动态规划部分(72 编辑距离、5 最长回文子串等)未排入本 30 天计划,建议之后专门花 5-7 天攻克。
- 每天记录:用 Excel 或笔记本标记完成状态:✅ 独立写出 /
⚠️ 看提示后写出 / ❌ 不会(复习日重点攻克)。