LeetCode 题解大全

项目说明

LeetCode 系列题解致力于帮助程序员更好地理解和掌握算法思维,内容包含详细的解题思路分析、图文并茂的示例讲解和完整的代码实现。

LeetCode 最全题解:持续更新中,欢迎 Star ⭐️ 关注,一起探讨算法之美。

LeetCode 题解(非会员题目)

题号 题解 代码 标签 难度
1 两数之和 L0001 数组 哈希表 简单
2 两数相加 L0002 链表 数学 中等
3 无重复字符的最长子串 L0003 字符串 哈希表 滑动窗口 中等
4 寻找两个正序数组的中位数 L0004 数组 二分查找 分治 困难
5 最长回文子串 L0005 字符串 动态规划 中等
6 Z 字形变换 L0006 字符串 中等
7 整数反转 L0007 数学 中等
8 字符串转换整数 (atoi) L0008 字符串 中等
9 回文数 L0009 数学 简单
10 正则表达式匹配 L0010 字符串 动态规划 递归 困难
11 盛最多水的容器 L0011 数组 双指针 中等
12 整数转罗马数字 L0012 数学 字符串 中等
13 罗马数字转整数 L0013 数学 字符串 简单
14 最长公共前缀 L0014 字符串 简单
15 三数之和 L0015 数组 双指针 中等
16 最接近的三数之和 L0016 数组 双指针 排序 中等
17 电话号码的字母组合 L0017 字符串 回溯 中等
18 四数之和 L0018 数组 双指针 排序 中等
19 删除链表的倒数第 N 个结点 L0019 链表 双指针 中等
20 有效的括号 L0020 字符串 简单
21 合并两个有序链表 L0021 链表 简单
22 括号生成 L0022 字符串 回溯 中等
23 合并 K 个升序链表 L0023 链表 分治 困难
24 两两交换链表中的节点 L0024 链表 中等
25 K 个一组翻转链表 L0025 链表 困难
26 删除有序数组中的重复项 L0026 数组 双指针 简单
27 移除元素 L0027 数组 双指针 简单
28 实现 strStr() L0028 字符串 双指针 简单
29 两数相除 L0029 位运算 数学 中等
30 串联所有单词的子串 L0030 字符串 哈希表 滑动窗口 困难
31 下一个排列 L0031 数组 双指针 中等
32 最长有效括号 L0032 字符串 动态规划 困难
33 搜索旋转排序数组 L0033 数组 二分查找 中等
34 在排序数组中查找元素的第一个和最后一个位置 L0034 数组 二分查找 中等
35 搜索插入位置 L0035 数组 二分查找 简单
36 有效的数独 L0036 数组 哈希表 中等
37 解数独 L0037 数组 回溯 困难
38 外观数列 L0038 字符串 中等
39 组合总和 L0039 数组 回溯 中等
40 组合总和 II L0040 数组 回溯 中等
41 缺失的第一个正数 L0041 数组 哈希表 困难
42 接雨水 L0042 数组 双指针 困难
43 字符串相乘 L0043 数学 字符串 中等
44 通配符匹配 L0044 贪心 字符串 动态规划 困难
45 跳跃游戏 II L0045 数组 贪心 中等
46 全排列 L0046 数组 回溯 中等
47 全排列 II L0047 数组 回溯 中等
48 旋转图像 L0048 数组 数学 矩阵 中等
49 字母异位词分组 L0049 数组 哈希表 字符串 中等
50 Pow(x, n) L0050 递归 数学 中等
51 N 皇后 L0051 数组 回溯 困难
52 N 皇后 II L0052 回溯 困难
53 最大子数组和 L0053 数组 分治 动态规划 中等
54 螺旋矩阵 L0054 数组 矩阵 模拟 中等
55 跳跃游戏 L0055 贪心 数组 动态规划 中等
56 合并区间 L0056 数组 排序 中等
57 插入区间 L0057 数组 中等
58 最后一个单词的长度 L0058 字符串 简单
59 螺旋矩阵 II L0059 数组 矩阵 模拟 中等
60 排列序列 L0060 数学 回溯 困难
61 旋转链表 L0061 链表 双指针 中等
62 不同路径 L0062 数学 动态规划 组合数学 中等
63 不同路径 II L0063 数组 动态规划 中等
64 最小路径和 L0064 数组 动态规划 中等
65 有效数字 L0065 字符串 困难
66 加一 L0066 数组 数学 简单
67 二进制求和 L0067 位运算 数学 字符串 简单
68 文本左右对齐 L0068 字符串 模拟 困难
69 x 的平方根 L0069 数学 二分查找 简单
70 爬楼梯 L0070 记忆化搜索 数学 动态规划 简单
71 简化路径 L0071 字符串 中等
72 编辑距离 L0072 字符串 动态规划 困难
73 矩阵置零 L0073 数组 哈希表 矩阵 中等
74 搜索二维矩阵 L0074 数组 二分查找 矩阵 中等
75 颜色分类 L0075 数组 双指针 排序 中等
76 最小覆盖子串 L0076 哈希表 字符串 滑动窗口 困难
77 组合 L0077 回溯 中等
78 子集 L0078 位运算 数组 回溯 中等
79 单词搜索 L0079 数组 回溯 矩阵 中等
80 删除有序数组中的重复项 II L0080 数组 双指针 中等
81 搜索旋转排序数组 II L0081 数组 二分查找 中等
82 删除排序链表中的重复元素 II L0082 链表 双指针 中等
83 删除排序链表中的重复元素 L0083 链表 简单
84 柱状图中最大的矩形 L0084 数组 单调栈 困难
85 最大矩形 L0085 数组 动态规划 矩阵 困难
86 分隔链表 L0086 链表 双指针 中等
87 扰乱字符串 L0087 字符串 动态规划 困难
88 合并两个有序数组 L0088 数组 双指针 排序 简单
89 格雷编码 L0089 位运算 数学 回溯 中等
90 子集 II L0090 位运算 数组 回溯 中等
91 解码方法 L0091 字符串 动态规划 中等
92 反转链表 II L0092 链表 中等
93 复原 IP 地址 L0093 字符串 回溯 中等
94 二叉树的中序遍历 L0094 深度优先搜索 简单
95 不同的二叉搜索树 II L0095 二叉搜索树 动态规划 中等
96 不同的二叉搜索树 L0096 二叉搜索树 数学 动态规划 中等
97 交错字符串 L0097 字符串 动态规划 中等
98 验证二叉搜索树 L0098 深度优先搜索 二叉搜索树 中等
99 恢复二叉搜索树 L0099 深度优先搜索 二叉搜索树 中等
100 相同的树 L0100 深度优先搜索 广度优先搜索 简单
101 对称二叉树 L0101 深度优先搜索 广度优先搜索 简单
102 二叉树的层序遍历 L0102 广度优先搜索 二叉树 中等
103 二叉树的锯齿形层序遍历 L0103 广度优先搜索 二叉树 中等
104 二叉树的最大深度 L0104 深度优先搜索 广度优先搜索 简单
105 从前序与中序遍历序列构造二叉树 L0105 数组 哈希表 分治 二叉树 中等
106 从中序与后序遍历序列构造二叉树 L0106 数组 哈希表 分治 二叉树 中等
107 二叉树的层序遍历 II L0107 广度优先搜索 二叉树 中等
108 将有序数组转换为二叉搜索树 L0108 二叉搜索树 数组 分治 二叉树 简单
109 有序链表转换二叉搜索树 L0109 二叉搜索树 链表 分治 二叉树 中等
110 平衡二叉树 L0110 深度优先搜索 二叉树 简单
111 二叉树的最小深度 L0111 深度优先搜索 广度优先搜索 简单
112 路径总和 L0112 深度优先搜索 二叉树 简单
113 路径总和 II L0113 深度优先搜索 回溯 二叉树 中等
114 二叉树展开为链表 L0114 链表 深度优先搜索 二叉树 中等
115 不同的子序列 L0115 字符串 动态规划 困难
116 填充每个节点的下一个右侧节点指针 L0116 深度优先搜索 广度优先搜索 链表 二叉树 中等
117 填充每个节点的下一个右侧节点指针 II L0117 深度优先搜索 广度优先搜索 链表 二叉树 中等
118 杨辉三角 L0118 数组 动态规划 简单
119 杨辉三角 II L0119 数组 动态规划 简单
120 三角形最小路径和 L0120 数组 动态规划 中等
121 买卖股票的最佳时机 L0121 数组 动态规划 简单
122 买卖股票的最佳时机 II L0122 数组 贪心算法 中等
123 买卖股票的最佳时机 III L0123 数组 动态规划 困难
124 二叉树中的最大路径和 L0124 深度优先搜索 动态规划 困难
125 验证回文串 L0125 双指针 字符串 简单
126 单词接龙 II L0126 广度优先搜索 哈希表 字符串 困难
127 单词接龙 L0127 广度优先搜索 哈希表 字符串 困难
128 最长连续序列 L0128 并查集 数组 哈希表 中等
129 求根节点到叶节点数字之和 L0129 深度优先搜索 中等
130 被围绕的区域 L0130 深度优先搜索 广度优先搜索 并查集 中等
131 分割回文串 L0131 回溯算法 动态规划 中等
132 分割回文串 II L0132 动态规划 字符串 困难
133 克隆图 L0133 深度优先搜索 广度优先搜索 中等
134 加油站 L0134 贪心算法 中等
135 分发糖果 L0135 贪心算法 困难
136 只出现一次的数字 L0136 位运算 哈希表 简单
137 只出现一次的数字 II L0137 位运算 中等
138 复制带随机指针的链表 L0138 哈希表 链表 中等
139 单词拆分 L0139 动态规划 字典树 中等
140 单词拆分 II L0140 回溯算法 动态规划 困难
141 环形链表 L0141 哈希表 链表 双指针 简单
142 环形链表 II L0142 哈希表 链表 双指针 中等
143 重排链表 L0143 链表 双指针 中等
144 二叉树的前序遍历 L0144 中等
145 二叉树的后序遍历 L0145 困难
146 LRU缓存机制 L0146 设计 哈希表 链表 困难
147 对链表进行插入排序 L0147 链表 排序 中等
148 排序链表 L0148 链表 双指针 分治 排序 归并排序 中等
149 直线上最多的点数 L0149 哈希表 数学 困难
150 逆波兰表达式求值 L0150 中等
151 翻转字符串里的单词 L0151 字符串 中等
152 乘积最大子数组 L0152 数组 动态规划 中等
153 寻找旋转排序数组中的最小值 L0153 数组 二分查找 中等
154 寻找旋转排序数组中的最小值 II L0154 数组 二分查找 困难
155 最小栈 L0155 设计 简单
160 相交链表 L0160 链表 双指针 简单
162 寻找峰值 L0162 数组 二分查找 中等
164 最大间距 L0164 排序 桶排序 困难
165 比较版本号 L0165 字符串 中等
166 分数到小数 L0166 哈希表 数学 字符串 中等
167 两数之和 II - 输入有序数组 L0167 数组 双指针 二分查找 简单
168 Excel表列名称 L0168 数学 字符串 简单
169 多数元素 L0169 数组 哈希表 分治 计数 排序 简单
171 Excel表列序号 L0171 数学 字符串 简单
172 阶乘后的零 L0172 数学 简单
173 二叉搜索树迭代器 L0173 设计 中等
174 地下城游戏 L0174 数组 动态规划 矩阵 困难
175 组合两个表 L0175 JOIN操作 数据库 简单
176 第二高的薪水 L0176 子查询 聚合函数 简单
177 第N高的薪水 L0177 窗口函数 自定义函数 中等
178 分数排名 L0178 窗口函数 排序 中等
179 最大数 L0179 排序 贪心 字符串 中等
180 连续出现的数字 L0180 自连接 连续问题 中等
181 超过经理收入的员工 L0181 自连接 比较查询 简单
182 查找重复的电子邮箱 L0182 分组统计 HAVING子句 简单
183 从不订购的客户 L0183 左连接 NULL判断 简单
184 部门工资最高的员工 L0184 子查询 IN操作符 中等
185 部门工资前三高的所有员工 L0185 子查询 关联比较 困难
187 重复的DNA序列 L0187 哈希表 位运算 滑动窗口 中等
188 买卖股票的最佳时机 IV L0188 动态规划 困难
189 轮转数组 L0189 数组 数学 中等
190 颠倒二进制位 L0190 位运算 简单
191 位1的个数 L0191 位运算 简单
192 统计词频 L0192 文本处理 统计 中等
193 有效电话号码 L0193 正则表达式 简单
194 转置文件 L0194 文本处理 转置 中等
195 第十行 L0195 Shell 简单
196 删除重复的电子邮箱 L0196 自连接删除 重复处理 简单
197 上升的温度 L0197 日期函数 自连接 简单
198 部门工资中位数 L0198 窗口函数 中位数计算 中等
199 最近的订单 L0199 子查询 分组聚合 简单
200 第N高的工资 L0200 窗口函数 自定义函数 中等
201 学生和考试 L0201 JOIN操作 条件过滤 简单
202 用户购买模式 L0202 存在性检查 日期函数 中等
203 移除链表元素 L0203 链表 简单
204 计数质数 L0204 哈希表 数学 中等
205 同构字符串 L0205 哈希表 简单
206 反转链表 L0206 链表 简单
207 课程表 L0207 深度优先搜索 广度优先搜索 拓扑排序 中等
208 实现 Trie (前缀树) L0208 设计 字典树 中等
209 长度最小的子数组 L0209 数组 双指针 滑动窗口 中等
210 课程表 II L0210 深度优先搜索 广度优先搜索 拓扑排序 中等
211 添加与搜索单词 - 数据结构设计 L0211 设计 字典树 回溯算法 中等
212 单词搜索 II L0212 字典树 回溯算法 困难
213 打家劫舍 II L0213 动态规划 中等
214 最短回文串 L0214 字符串 困难
215 数组中的第K个最大元素 L0215 分治算法 中等
216 组合总和 III L0216 数组 回溯算法 中等
217 存在重复元素 L0217 数组 哈希表 简单
218 天际线问题 L0218 分治算法 困难
219 存在重复元素 II L0219 数组 哈希表 简单
220 存在重复元素 III L0220 排序 Ordered Map 中等
221 最大正方形 L0221 动态规划 中等
222 完全二叉树的节点个数 L0222 二分查找 中等
223 矩形面积 L0223 数学 中等
224 基本计算器 L0224 数学 困难
225 用队列实现栈 L0225 设计 队列 简单
226 翻转二叉树 L0226 简单
227 基本计算器 II L0227 数学 中等
228 汇总区间 L0228 数组 简单
229 求众数 II L0229 数组 中等
230 二叉搜索树中第K小的元素 L0230 二分查找 中等
231 2的幂 L0231 位运算 简单
232 用栈实现队列 L0232 设计 简单
233 数字 1 的个数 L0233 数学 困难
234 回文链表 L0234 链表 双指针 简单
235 二叉搜索树的最近公共祖先 L0235 简单
236 二叉树的最近公共祖先 L0236 中等
237 删除链表中的节点 L0237 链表 简单
238 除自身以外数组的乘积 L0238 数组 中等
239 滑动窗口最大值 L0239 滑动窗口 困难
240 搜索二维矩阵 II L0240 二分查找 中等
241 为运算表达式设计优先级 L0241 分治算法 中等
242 有效的字母异位词 L0242 哈希表 简单
257 二叉树的所有路径 L0257 深度优先搜索 简单
258 各位相加 L0258 数学 简单
260 只出现一次的数字 III L0260 位运算 中等
263 丑数 L0263 数学 简单
264 丑数 II L0264 数学 中等
268 丢失的数字 L0268 位运算 数学 简单
274 H 指数 L0274 排序 中等
275 H 指数 II L0275 二分查找 中等
278 第一个错误的版本 L0278 二分查找 简单
279 完全平方数 L0279 动态规划 数学 中等
280 摆动排序 L0280 排序 数组 中等
281 锯齿迭代器 L0281 设计 队列 中等
282 给表达式添加运算符 L0282 深度优先搜索 字符串 困难
283 移动零 L0283 数组 双指针 简单
284 顶端迭代器 L0284 设计 迭代器 中等
285 二叉搜索树中的顺序后继 L0285 二叉搜索树 中等
286 墙与门 L0286 广度优先搜索 中等
287 寻找重复数 L0287 数组 双指针 中等
289 生命游戏 L0289 数组 矩阵 中等
290 单词规律 L0290 哈希表 字符串 简单
292 Nim 游戏 L0292 数学 博弈论 简单
295 数据流的中位数 L0295 设计 困难
297 二叉树的序列化与反序列化 L0297 深度优先搜索 困难
299 猜数字游戏 L0299 哈希表 字符串 中等
300 最长递增子序列 L0300 动态规划 二分查找 中等
301 删除无效的括号 L0301 深度优先搜索 广度优先搜索 困难
303 区域和检索 - 数组不可变 L0303 设计 前缀和 简单
304 二维区域和检索 - 矩阵不可变 L0304 设计 矩阵 中等
306 累加数 L0306 字符串 回溯 中等
307 区域和检索 - 数组可修改 L0307 设计 树状数组 中等
310 最小高度树 L0310 广度优先搜索 拓扑排序 中等
312 戳气球 L0312 动态规划 分治 困难
315 计算右侧小于当前元素的个数 L0315 树状数组 线段树 困难
316 去除重复字母 L0316 贪心 中等
318 最大单词长度乘积 L0318 位运算 哈希表 中等
319 灯泡开关 L0319 数学 脑筋急转弯 中等
322 零钱兑换 L0322 动态规划 广度优先搜索 中等
324 摆动排序 II L0324 排序 数组 中等
326 3 的幂 L0326 数学 递归 简单
328 奇偶链表 L0328 链表 双指针 中等
329 矩阵中的最长递增路径 L0329 深度优先搜索 拓扑排序 困难
330 按要求补齐数组 L0330 贪心 数组 困难
331 验证二叉树的前序序列化 L0331 中等
332 重新安排行程 L0332 深度优先搜索 中等
334 递增的三元子序列 L0334 贪心 数组 中等
337 打家劫舍 III L0337 动态规划 中等
338 比特位计数 L0338 位运算 动态规划 简单
341 扁平化嵌套列表迭代器 L0341 设计 中等
342 4的幂 L0342 位运算 数学 简单
344 反转字符串 L0344 双指针 字符串 简单
345 反转字符串中的元音字母 L0345 双指针 字符串 简单
347 前 K 个高频元素 L0347 哈希表 中等
349 两个数组的交集 L0349 哈希表 双指针 简单
350 两个数组的交集 II L0350 哈希表 双指针 简单
352 将数据流变为多个不相交区间 L0352 设计 有序集合 困难
354 俄罗斯套娃信封问题 L0354 动态规划 二分查找 困难
355 设计推特 L0355 设计 哈希表 中等
357 计算各个位数不同的数字个数 L0357 数学 动态规划 中等
363 矩形区域不超过 K 的最大数值和 L0363 队列 二分查找 困难
365 水壶问题 L0365 数学 广度优先搜索 中等
367 有效的完全平方数 L0367 数学 二分查找 简单
368 最大整除子集 L0368 动态规划 数学 中等
371 两整数之和 L0371 位运算 数学 中等
372 超级次方 L0372 数学 分治 中等
373 查找和最小的K对数字 L0373 数组 中等
376 摆动序列 L0376 贪心 动态规划 中等
377 组合总和 Ⅳ L0377 动态规划 回溯 中等
378 有序矩阵中第 K 小的元素 L0378 二分查找 中等
380 O(1) 时间插入、删除和获取随机元素 L0380 设计 哈希表 中等
382 链表随机节点 L0382 蓄水池抽样 链表 中等
384 打乱数组 L0384 设计 随机化 中等
385 迷你语法分析器 L0385 字符串 中等
387 字符串中的第一个唯一字符 L0387 哈希表 字符串 简单
389 找不同 L0389 位运算 哈希表 简单
392 判断子序列 L0392 双指针 字符串 简单
393 UTF-8 编码验证 L0393 位运算 数组 中等
394 字符串解码 L0394 递归 中等
395 至少有 K 个重复字符的最长子串 L0395 分治 滑动窗口 中等
396 旋转函数 L0396 数学 动态规划 中等
399 除法求值 L0399 并查集 中等
400 第 N 位数字 L0400 数学 二分查找 中等
401 二进制手表 L0401 位运算 回溯 简单
402 移掉 K 位数字 L0402 贪心 中等
403 青蛙过河 L0403 动态规划 哈希表 困难
404 左叶子之和 L0404 深度优先搜索 简单
406 根据身高重建队列 L0406 贪心 排序 中等
407 接雨水 II L0407 广度优先搜索 困难
409 最长回文串 L0409 哈希表 字符串 简单
410 分割数组的最大值 L0410 二分查找 动态规划 困难
412 Fizz Buzz L0412 数学 字符串 简单
413 等差数列划分 L0413 数组 动态规划 中等
414 第三大的数 L0414 数组 排序 简单
415 字符串相加 L0415 字符串 数学 简单
416 分割等和子集 L0416 动态规划 背包问题 中等
417 太平洋大西洋水流问题 L0417 深度优先搜索 广度优先搜索 中等
419 甲板上的战舰 L0419 数组 矩阵 中等
421 数组中两个数的最大异或值 L0421 位运算 字典树 中等
424 替换后的最长重复字符 L0424 滑动窗口 双指针 中等
429 N 叉树的层序遍历 L0429 广度优先搜索 中等
430 扁平化多级双向链表 L0430 链表 深度优先搜索 中等
432 全 O(1) 的数据结构 L0432 设计 哈希表 困难
433 最小基因变化 L0433 广度优先搜索 哈希表 中等
435 无重叠区间 L0435 贪心 动态规划 中等
436 寻找右区间 L0436 二分查找 排序 中等
437 路径总和 III L0437 前缀和 中等
438 找到字符串中所有字母异位词 L0438 滑动窗口 哈希表 中等
440 字典序的第K小数字 L0440 字典树 数学 困难
441 排列硬币 L0441 数学 二分查找 简单
442 数组中重复的数据 L0442 数组 原地哈希 中等
443 压缩字符串 L0443 双指针 字符串 中等
445 两数相加 II L0445 链表 中等
448 找到所有数组中消失的数字 L0448 数组 原地哈希 简单
449 序列化和反序列化二叉搜索树 L0449 设计 中等
450 删除二叉搜索树中的节点 L0450 二叉搜索树 中等
452 用最少数量的箭引爆气球 L0452 贪心 排序 中等
453 最小操作次数使数组元素相等 L0453 数学 数组 简单
454 四数相加 II L0454 哈希表 分组统计 中等
455 分发饼干 L0455 贪心 排序 简单
456 132 模式 L0456 数组 中等
457 环形数组是否存在循环 L0457 快慢指针 数组 中等
458 可怜的小猪 L0458 数学 组合数学 困难
459 重复的子字符串 L0459 字符串 KMP算法 简单
460 LFU 缓存 L0460 设计 哈希表 困难
461 汉明距离 L0461 位运算 数学 简单
462 最少移动次数使数组元素相等 II L0462 数学 排序 中等
463 岛屿的周长 L0463 数组 矩阵 简单
464 我能赢吗 L0464 记忆化搜索 位运算 中等
466 统计重复个数 L0466 字符串 动态规划 困难
467 环绕字符串中唯一的子字符串 L0467 动态规划 字符串 中等
468 验证IP地址 L0468 字符串 正则表达式 中等
470 用 Rand7() 实现 Rand10() L0470 数学 拒绝采样 中等
472 连接词 L0472 字典树 动态规划 困难
473 火柴拼正方形 L0473 回溯 位运算 中等
474 一和零 L0474 动态规划 背包问题 中等
475 供暖器 L0475 二分查找 排序 中等

其他项目

coding 笔记、点滴记录,希望大家关注 ^_^