LeetCode 刷题分组与顺序
分类标准:使用“一级知识模块+二级核心算法”。一级模块用于组织复习范围,二级分类按照主流解法中决定正确性的核心算法思想划分。每个表格从上到下是建议刷题顺序,相似题尽量相邻,难度尽量由易到难。
一、数组、查找与线性结构
1. 哈希、前缀计数与原地映射
| 题号和题目 |
难度 |
| [1] 两数之和 |
简单 |
| [128] 最长连续序列 |
中等 |
| [974] 和可被 K 整除的子数组 |
中等 |
| [442] 数组中重复的数据 |
中等 |
| [41] 缺失的第一个正数 |
困难 |
2. 双指针
| 题号和题目 |
难度 |
| [88] 合并两个有序数组 |
简单 |
| [80] 删除有序数组中的重复项 II |
中等 |
| [15] 三数之和 |
中等 |
| [42] 接雨水 |
困难 |
3. 滑动窗口
| 题号和题目 |
难度 |
| [3] 无重复字符的最长子串 |
中等 |
| [209] 长度最小的子数组 |
中等 |
| [76] 最小覆盖子串 |
困难 |
4. 二分与单调空间搜索
| 题号和题目 |
难度 |
| [704] 二分查找 |
简单 |
| [69] x 的平方根 |
简单 |
| [34] 在排序数组中查找元素的第一个和最后一个位置 |
中等 |
| [162] 寻找峰值 |
中等 |
| [33] 搜索旋转排序数组 |
中等 |
| [240] 搜索二维矩阵 II |
中等 |
| [4] 寻找两个正序数组的中位数 |
困难 |
5. 排序、选择、区间与堆
| 题号和题目 |
难度 |
| [912] 排序数组 |
中等 |
| [56] 合并区间 |
中等 |
| [179] 最大数 |
中等 |
| [215] 数组中的第 K 个最大元素 |
中等 |
| [23] 合并 K 个升序链表 |
困难 |
6. 栈与表达式处理
| 题号和题目 |
难度 |
| [20] 有效的括号 |
简单 |
| [155] 最小栈 |
中等 |
| [394] 字符串解码 |
中等 |
| [224] 基本计算器 |
困难 |
| [32] 最长有效括号 |
困难 |
7. 单调栈与单调队列
| 题号和题目 |
难度 |
| [581] 最短无序连续子数组 |
中等 |
| [239] 滑动窗口最大值 |
困难 |
二、模拟与规则处理
1. 字符串扫描与解析
| 题号和题目 |
难度 |
| [14] 最长公共前缀 |
简单 |
| [151] 反转字符串中的单词 |
中等 |
| [165] 比较版本号 |
中等 |
| [8] 字符串转换整数 (atoi) |
中等 |
| [12] 整数转罗马数字 |
中等 |
2. 矩阵与路径模拟
| 题号和题目 |
难度 |
| [6] Z 字形变换 |
中等 |
| [48] 旋转图像 |
中等 |
| [54] 螺旋矩阵 |
中等 |
3. 数位模拟与大数运算
| 题号和题目 |
难度 |
| [9] 回文数 |
简单 |
| [415] 字符串相加 |
简单 |
| [7] 整数反转 |
中等 |
| [43] 字符串相乘 |
中等 |
三、搜索、枚举与图论
1. 回溯
| 题号和题目 |
难度 |
| [78] 子集 |
中等 |
| [46] 全排列 |
中等 |
| [39] 组合总和 |
中等 |
| [22] 括号生成 |
中等 |
| [93] 复原 IP 地址 |
中等 |
| [79] 单词搜索 |
中等 |
2. 网格 DFS 与拓扑排序
| 题号和题目 |
难度 |
| [200] 岛屿数量 |
中等 |
| [695] 岛屿的最大面积 |
中等 |
| [207] 课程表 |
中等 |
四、链表
1. 反转、分段与重排
| 题号和题目 |
难度 |
| [206] 反转链表 |
简单 |
| [234] 回文链表 |
简单 |
| [92] 反转链表 II |
中等 |
| [24] 两两交换链表中的节点 |
中等 |
| [61] 旋转链表 |
中等 |
| [328] 奇偶链表 |
中等 |
| [143] 重排链表 |
中等 |
| [25] K 个一组翻转链表 |
困难 |
2. 删除、拼接、合并与排序
| 题号和题目 |
难度 |
| [21] 合并两个有序链表 |
简单 |
| [83] 删除排序链表中的重复元素 |
简单 |
| [82] 删除排序链表中的重复元素 II |
中等 |
| [19] 删除链表的倒数第 N 个节点 |
中等 |
| [237] 删除链表中的节点 |
中等 |
| [1669] 合并两个链表 |
中等 |
| [2] 两数相加 |
中等 |
| [148] 排序链表 |
中等 |
3. 快慢指针、相交与环
| 题号和题目 |
难度 |
| [160] 相交链表 |
简单 |
| [141] 环形链表 |
简单 |
| [142] 环形链表 II |
中等 |
| [287] 寻找重复数 |
中等 |
五、二叉树
1. 遍历与层序 BFS
| 题号和题目 |
难度 |
| [94] 二叉树的中序遍历 |
简单 |
| [102] 二叉树的层序遍历 |
中等 |
| [107] 二叉树的层序遍历 II |
中等 |
| [103] 二叉树的锯齿形层序遍历 |
中等 |
| [199] 二叉树的右视图 |
中等 |
| [515] 在每个树行中找最大值 |
中等 |
| [958] 二叉树的完全性检验 |
中等 |
| [662] 二叉树最大宽度 |
中等 |
2. 递归与结构性质
| 题号和题目 |
难度 |
| [104] 二叉树的最大深度 |
简单 |
| [101] 对称二叉树 |
简单 |
| [226] 翻转二叉树 |
简单 |
| [110] 平衡二叉树 |
简单 |
| [543] 二叉树的直径 |
简单 |
| [572] 另一棵树的子树 |
简单 |
3. 二叉搜索树
| 题号和题目 |
难度 |
| [108] 将有序数组转换为二叉搜索树 |
简单 |
| [783] 二叉搜索树节点最小距离 |
简单 |
| [98] 验证二叉搜索树 |
中等 |
| [99] 恢复二叉搜索树 |
中等 |
4. 路径、祖先与树形 DP
| 题号和题目 |
难度 |
| [112] 路径总和 |
简单 |
| [129] 求根节点到叶节点数字之和 |
中等 |
| [113] 路径总和 II |
中等 |
| [236] 二叉树的最近公共祖先 |
中等 |
| [124] 二叉树中的最大路径和 |
困难 |
5. 构造、展开与序列化
| 题号和题目 |
难度 |
| [105] 从前序与中序遍历序列构造二叉树 |
中等 |
| [114] 二叉树展开为链表 |
中等 |
| [297] 二叉树的序列化与反序列化 |
困难 |
六、动态规划
1. 一维状态 DP
| 题号和题目 |
难度 |
| [70] 爬楼梯 |
简单 |
| [121] 买卖股票的最佳时机 |
简单 |
| [53] 最大子数组和 |
中等 |
| [198] 打家劫舍 |
中等 |
| [152] 乘积最大子数组 |
中等 |
| [300] 最长递增子序列 |
中等 |
2. 网格与二维 DP
| 题号和题目 |
难度 |
| [62] 不同路径 |
中等 |
| [64] 最小路径和 |
中等 |
| [120] 三角形最小路径和 |
中等 |
| [221] 最大正方形 |
中等 |
3. 字符串与序列 DP
| 题号和题目 |
难度 |
| [5] 最长回文子串 |
中等 |
| [139] 单词拆分 |
中等 |
| [718] 最长重复子数组 |
中等 |
| [1143] 最长公共子序列 |
中等 |
| [72] 编辑距离 |
困难 |
4. 计数、拆分与完全背包 DP
| 题号和题目 |
难度 |
| [343] 整数拆分 |
中等 |
| [96] 不同的二叉搜索树 |
中等 |
| [322] 零钱兑换 |
中等 |
七、贪心与构造
1. 贪心
| 题号和题目 |
难度 |
| [11] 盛最多水的容器 |
中等 |
| [122] 买卖股票的最佳时机 II |
中等 |
| [402] 移掉 K 位数字 |
中等 |
| [135] 分发糖果 |
困难 |
2. 排列构造
八、数据结构设计与特殊算法
1. 数据结构设计
| 题号和题目 |
难度 |
| [232] 用栈实现队列 |
简单 |
| [146] LRU 缓存 |
中等 |
2. 概率与随机采样
| 题号和题目 |
难度 |
| [470] 用 Rand7() 实现 Rand10() |
中等 |
3. 字典序与前缀树计数
| 题号和题目 |
难度 |
| [440] 字典序的第 K 小数字 |
困难 |