跳转至

刷题清单

目标:看到题目就知道用什么模板

一、链表

基础必会

  1. 21 合并两个有序链表 - 双指针基础
  2. 206 反转链表 - 必背模板
  3. 141 环形链表 - 快慢指针
  4. 19 删除链表的倒数第 N 个结点 - 快慢指针进阶

进阶题

  1. 92 反转链表 II - 部分反转
  2. 142 环形链表 II - 数学推导
  3. 25 K 个一组翻转链表 ⭐ - 分组反转

二、二叉树

遍历类

  1. 102 二叉树的层序遍历 - BFS 入门
  2. 144 二叉树的前序遍历
  3. 94 二叉树的中序遍历
  4. 145 二叉树的后序遍历

性质类

  1. 104 二叉树的最大深度
  2. 101 对称二叉树
  3. 226 翻转二叉树
  4. 112 路径总和
  5. 110 平衡二叉树
  6. 98 验证二叉搜索树 ⭐ - BST 核心
  7. 543 二叉树的直径 - 递归思维
  8. 236 二叉树的最近公共祖先

三、数组 / 字符串

滑动窗口

  1. 3 无重复字符的最长子串
  2. 438 找到字符串中所有字母异位词
  3. 76 最小覆盖子串
  4. 424 替换后的最长重复字符
  5. 239 滑动窗口最大值 - 单调队列

双指针

  1. 26 删除有序数组中的重复项
  2. 27 移除元素
  3. 88 合并两个有序数组
  4. 11 盛最多水的容器
  5. 15 三数之和 ⭐ - 双指针经典

四、栈 & 队列

  1. 20 有效的括号
  2. 155 最小栈
  3. 232 用栈实现队列
  4. 225 用队列实现栈
  5. 739 每日温度 - 单调栈入门

五、二分查找

  1. 704 二分查找
  2. 35 搜索插入位置
  3. 34 在排序数组中查找元素的第一个和最后一个位置
  4. 153 寻找旋转排序数组中的最小值
  5. 33 搜索旋转排序数组

六、回溯

  1. 78 子集 - 回溯入门
  2. 77 组合
  3. 46 全排列
  4. 39 组合总和
  5. 47 全排列 II - 去重技巧

七、动态规划

入门必做

  1. 70 爬楼梯 - DP 入门
  2. 198 打家劫舍 - 状态转移
  3. 53 最大子数组和

经典题型

  1. 322 零钱兑换 - 完全背包
  2. 300 最长递增子序列
  3. 5 最长回文子串 - 区间 DP
  4. 1143 最长公共子序列

八、图论(BFS/DFS)

  1. 200 岛屿数量 - DFS/BFS 基础
  2. 133 克隆图 - 图的遍历
  3. 207 课程表 - 拓扑排序
  4. 994 腐烂的橘子 - 多源 BFS

九、进阶高频(理解即可)

  1. 146 LRU 缓存 ⭐ - 哈希表 + 双向链表
  2. 208 实现 Trie (前缀树)
  3. 124 二叉树中的最大路径和
  4. 84 柱状图中最大的矩形 - 单调栈
  5. 42 接雨水 ⭐ - 双指针/单调栈

推荐刷题节奏

每天 1 小时(5-6 题)

周一至周五(基础巩固):

  • 1 题链表/数组
  • 1-2 题二叉树
  • 1 题滑动窗口/双指针
  • 1 题栈/队列/二分

周末(专题突破):

  • 3 题 DP(同一类型)
  • 2 题回溯/图论

三遍刷题法

  • 第 1 遍:看题解,理解思路,能写对
  • 第 2 遍:不看答案,独立完成
  • 第 3 遍:边写边讲,能给别人讲清楚

进阶建议

  • 一题多解:尝试不同解法(暴力 → 优化 → 最优)
  • 总结模板:相同类型题目提炼通用模板
  • 定期复习:每周回顾本周错题

评论