LeetCode 题解大全(500 题)
每道题都有题意说明、解题思路、正确性说明、复杂度分析和六种语言代码。看完可以进入在线刷题,自己写一遍并运行测试。
哈希表 18 题
- 1. 两数之和哈希表简单
- 49. 字母异位词分组哈希表中等
- 128. 最长连续序列哈希表中等
- 560. 和为 K 的子数组哈希表中等
- 41. 缺失的第一个正数哈希表困难
- 217. 存在重复元素哈希表简单
- 448. 找到所有数组中消失的数字哈希表简单
- 697. 数组的度哈希表简单
- 1275. 找出井字棋的获胜者哈希表简单
- 36. 有效的数独哈希表中等
- 229. 多数元素 II哈希表中等
- 442. 数组中重复的数据哈希表中等
- 454. 四数相加 II哈希表中等
- 523. 连续的子数组和哈希表中等
- 525. 连续数组哈希表中等
- 974. 和可被 K 整除的子数组哈希表中等
- 1010. 总持续时间可被 60 整除的歌曲哈希表中等
- 149. 直线上最多的点数哈希表困难
双指针 26 题
- 283. 移动零双指针简单
- 11. 盛最多水的容器双指针中等
- 15. 三数之和双指针中等
- 42. 接雨水双指针困难
- 26. 删除有序数组中的重复项双指针简单
- 27. 移除元素双指针简单
- 28. 找出字符串中第一个匹配项的下标双指针简单
- 88. 合并两个有序数组双指针简单
- 125. 验证回文串双指针简单
- 202. 快乐数双指针简单
- 344. 反转字符串双指针简单
- 345. 反转字符串中的元音字母双指针简单
- 392. 判断子序列双指针简单
- 541. 反转字符串 II双指针简单
- 557. 反转字符串中的单词 III双指针简单
- 696. 计数二进制子串双指针简单
- 905. 按奇偶排序数组双指针简单
- 977. 有序数组的平方双指针简单
- 16. 最接近的三数之和双指针中等
- 18. 四数之和双指针中等
- 80. 删除有序数组中的重复项 II双指针中等
- 151. 反转字符串中的单词双指针中等
- 165. 比较版本号双指针中等
- 443. 压缩字符串双指针中等
- 556. 下一个更大元素 III双指针中等
- 986. 区间列表的交集双指针中等
滑动窗口 13 题
- 3. 无重复字符的最长子串滑动窗口中等
- 438. 找到字符串中所有字母异位词滑动窗口中等
- 239. 滑动窗口最大值滑动窗口困难
- 76. 最小覆盖子串滑动窗口困难
- 219. 存在重复元素 II滑动窗口简单
- 187. 重复的DNA序列滑动窗口中等
- 395. 至少有 K 个重复字符的最长子串滑动窗口中等
- 424. 替换后的最长重复字符滑动窗口中等
- 567. 字符串的排列滑动窗口中等
- 904. 水果成篮滑动窗口中等
- 30. 串联所有单词的子串滑动窗口困难
- 220. 存在重复元素 III滑动窗口困难
- 480. 滑动窗口中位数滑动窗口困难
字符串 32 题
- 13. 罗马数字转整数字符串简单
- 14. 最长公共前缀字符串简单
- 58. 最后一个单词的长度字符串简单
- 168. Excel 表列名称字符串简单
- 171. Excel 表列序号字符串简单
- 205. 同构字符串字符串简单
- 242. 有效的字母异位词字符串简单
- 290. 单词规律字符串简单
- 383. 赎金信字符串简单
- 412. Fizz Buzz字符串简单
- 415. 字符串相加字符串简单
- 459. 重复的子字符串字符串简单
- 657. 机器人能否返回原点字符串简单
- 771. 宝石与石头字符串简单
- 796. 旋转字符串字符串简单
- 1071. 字符串的最大公因子字符串简单
- 6. Z 字形变换字符串中等
- 8. 字符串转换整数 (atoi)字符串中等
- 12. 整数转罗马数字字符串中等
- 38. 外观数列字符串中等
- 43. 字符串相乘字符串中等
- 166. 分数到小数字符串中等
- 299. 猜数字游戏字符串中等
- 468. 验证IP地址字符串中等
- 811. 子域名访问计数字符串中等
- 1041. 困于环中的机器人字符串中等
- 65. 有效数字字符串困难
- 68. 文本左右对齐字符串困难
- 214. 最短回文串字符串困难
- 273. 整数转换英文表示字符串困难
- 336. 回文对字符串困难
- 564. 寻找最近的回文数字符串困难
数组与矩阵 23 题
- 53. 最大子数组和数组与矩阵中等
- 56. 合并区间数组与矩阵中等
- 189. 轮转数组数组与矩阵中等
- 238. 除自身以外数组的乘积数组与矩阵中等
- 73. 矩阵置零数组与矩阵中等
- 54. 螺旋矩阵数组与矩阵中等
- 48. 旋转图像数组与矩阵中等
- 240. 搜索二维矩阵 II数组与矩阵中等
- 228. 汇总区间数组与矩阵简单
- 414. 第三大的数数组与矩阵简单
- 463. 岛屿的周长数组与矩阵简单
- 485. 最大连续 1 的个数数组与矩阵简单
- 674. 最长连续递增序列数组与矩阵简单
- 724. 寻找数组的中心下标数组与矩阵简单
- 1200. 最小绝对差数组与矩阵简单
- 1480. 一维数组的动态和数组与矩阵简单
- 57. 插入区间数组与矩阵中等
- 164. 最大间距数组与矩阵中等
- 274. H 指数数组与矩阵中等
- 406. 根据身高重建队列数组与矩阵中等
- 419. 甲板上的战舰数组与矩阵中等
- 665. 非递减数列数组与矩阵中等
- 849. 到最近的人的最大距离数组与矩阵中等
链表 32 题
- 160. 相交链表链表简单
- 206. 反转链表链表简单
- 234. 回文链表链表简单
- 141. 环形链表链表简单
- 142. 环形链表 II链表中等
- 21. 合并两个有序链表链表简单
- 2. 两数相加链表中等
- 19. 删除链表的倒数第 N 个结点链表中等
- 24. 两两交换链表中的节点链表中等
- 25. K 个一组翻转链表链表困难
- 138. 随机链表的复制链表中等
- 148. 排序链表链表中等
- 23. 合并 K 个升序链表链表困难
- 146. LRU 缓存链表中等
- 83. 删除排序链表中的重复元素链表简单
- 203. 移除链表元素链表简单
- 876. 链表的中间结点链表简单
- 1290. 二进制链表转整数链表简单
- 61. 旋转链表链表中等
- 82. 删除排序链表中的重复元素 II链表中等
- 86. 分隔链表链表中等
- 92. 反转链表 II链表中等
- 109. 有序链表转换二叉搜索树链表中等
- 116. 填充每个节点的下一个右侧节点指针链表中等
- 117. 填充每个节点的下一个右侧节点指针 II链表中等
- 143. 重排链表链表中等
- 147. 对链表进行插入排序链表中等
- 237. 删除链表中的节点链表中等
- 328. 奇偶链表链表中等
- 382. 链表随机节点链表中等
- 430. 扁平化多级双向链表链表中等
- 445. 两数相加 II链表中等
二叉树 53 题
- 94. 二叉树的中序遍历二叉树简单
- 104. 二叉树的最大深度二叉树简单
- 226. 翻转二叉树二叉树简单
- 101. 对称二叉树二叉树简单
- 543. 二叉树的直径二叉树简单
- 102. 二叉树的层序遍历二叉树中等
- 108. 将有序数组转换为二叉搜索树二叉树简单
- 98. 验证二叉搜索树二叉树中等
- 230. 二叉搜索树中第 K 小的元素二叉树中等
- 199. 二叉树的右视图二叉树中等
- 114. 二叉树展开为链表二叉树中等
- 105. 从前序与中序遍历序列构造二叉树二叉树中等
- 437. 路径总和 III二叉树中等
- 236. 二叉树的最近公共祖先二叉树中等
- 124. 二叉树中的最大路径和二叉树困难
- 100. 相同的树二叉树简单
- 110. 平衡二叉树二叉树简单
- 111. 二叉树的最小深度二叉树简单
- 112. 路径总和二叉树简单
- 144. 二叉树的前序遍历二叉树简单
- 145. 二叉树的后序遍历二叉树简单
- 222. 完全二叉树的节点个数二叉树简单
- 257. 二叉树的所有路径二叉树简单
- 404. 左叶子之和二叉树简单
- 572. 另一棵树的子树二叉树简单
- 617. 合并二叉树二叉树简单
- 653. 两数之和 IV - 输入二叉搜索树二叉树简单
- 700. 二叉搜索树中的搜索二叉树简单
- 938. 二叉搜索树的范围和二叉树简单
- 95. 不同的二叉搜索树 II二叉树中等
- 96. 不同的二叉搜索树二叉树中等
- 99. 恢复二叉搜索树二叉树中等
- 103. 二叉树的锯齿形层序遍历二叉树中等
- 106. 从中序与后序遍历序列构造二叉树二叉树中等
- 107. 二叉树的层序遍历 II二叉树中等
- 113. 路径总和 II二叉树中等
- 129. 求根节点到叶节点数字之和二叉树中等
- 235. 二叉搜索树的最近公共祖先二叉树中等
- 337. 打家劫舍 III二叉树中等
- 450. 删除二叉搜索树中的节点二叉树中等
- 515. 在每个树行中找最大值二叉树中等
- 652. 寻找重复的子树二叉树中等
- 654. 最大二叉树二叉树中等
- 662. 二叉树最大宽度二叉树中等
- 687. 最长同值路径二叉树中等
- 690. 员工的重要性二叉树中等
- 701. 二叉搜索树中的插入操作二叉树中等
- 814. 二叉树剪枝二叉树中等
- 863. 二叉树中所有距离为 K 的结点二叉树中等
- 889. 根据前序和后序遍历构造二叉树二叉树中等
- 1008. 前序遍历构造二叉搜索树二叉树中等
- 968. 监控二叉树二叉树困难
- 987. 二叉树的垂序遍历二叉树困难
栈与堆 45 题
- 20. 有效的括号栈与堆简单
- 155. 最小栈栈与堆中等
- 394. 字符串解码栈与堆中等
- 739. 每日温度栈与堆中等
- 84. 柱状图最大矩形栈与堆困难
- 215. 第 K 个最大元素栈与堆中等
- 347. 前 K 个高频元素栈与堆中等
- 295. 数据流的中位数栈与堆困难
- 32. 最长有效括号栈与堆困难
- 387. 字符串中的第一个唯一字符栈与堆简单
- 496. 下一个更大元素 I栈与堆简单
- 844. 比较含退格的字符串栈与堆简单
- 1046. 最后一块石头的重量栈与堆简单
- 1047. 删除字符串中的所有相邻重复项栈与堆简单
- 71. 简化路径栈与堆中等
- 150. 逆波兰表达式求值栈与堆中等
- 227. 基本计算器 II栈与堆中等
- 316. 去除重复字母栈与堆中等
- 373. 查找和最小的 K 对数字栈与堆中等
- 388. 文件的最长绝对路径栈与堆中等
- 402. 移掉 K 位数字栈与堆中等
- 451. 根据字符出现频率排序栈与堆中等
- 503. 下一个更大元素 II栈与堆中等
- 581. 最短无序连续子数组栈与堆中等
- 621. 任务调度器栈与堆中等
- 636. 函数的独占时间栈与堆中等
- 692. 前 K 个高频单词栈与堆中等
- 735. 小行星碰撞栈与堆中等
- 767. 重构字符串栈与堆中等
- 856. 括号的分数栈与堆中等
- 912. 排序数组栈与堆中等
- 921. 使括号有效的最少添加栈与堆中等
- 946. 验证栈序列栈与堆中等
- 973. 最接近原点的 K 个点栈与堆中等
- 1094. 拼车栈与堆中等
- 1190. 反转每对括号间的子串栈与堆中等
- 1209. 删除字符串中的所有相邻重复项 II栈与堆中等
- 1249. 移除无效的括号栈与堆中等
- 1353. 最多可以参加的会议数目栈与堆中等
- 85. 最大矩形栈与堆困难
- 218. 天际线问题栈与堆困难
- 224. 基本计算器栈与堆困难
- 321. 拼接最大数栈与堆困难
- 407. 接雨水 II栈与堆困难
- 726. 原子的数量栈与堆困难
设计 27 题
- 225. 用队列实现栈设计简单
- 232. 用栈实现队列设计简单
- 303. 区域和检索 - 数组不可变设计简单
- 703. 数据流中的第 K 大元素设计简单
- 705. 设计哈希集合设计简单
- 706. 设计哈希映射设计简单
- 173. 二叉搜索树迭代器设计中等
- 211. 添加与搜索单词 - 数据结构设计设计中等
- 284. 窥视迭代器设计中等
- 304. 二维区域和检索 - 矩阵不可变设计中等
- 341. 扁平化嵌套列表迭代器设计中等
- 355. 设计推特设计中等
- 380. O(1) 时间插入、删除和获取随机元素设计中等
- 384. 打乱数组设计中等
- 449. 序列化和反序列化二叉搜索树设计中等
- 535. TinyURL 的加密与解密设计中等
- 622. 设计循环队列设计中等
- 707. 设计链表设计中等
- 729. 我的日程安排表 I设计中等
- 901. 股票价格跨度设计中等
- 981. 基于时间的键值存储设计中等
- 1146. 快照数组设计中等
- 297. 二叉树的序列化与反序列化设计困难
- 381. O(1) 时间插入、删除和获取随机元素 - 允许重复设计困难
- 432. 全 O(1) 的数据结构设计困难
- 460. LFU 缓存设计困难
- 895. 最大频率栈设计困难
图论 29 题
- 200. 岛屿数量图论中等
- 994. 腐烂的橘子图论中等
- 207. 课程表图论中等
- 208. 实现 Trie图论中等
- 733. 图像渲染图论简单
- 997. 找到小镇的法官图论简单
- 130. 被围绕的区域图论中等
- 133. 克隆图图论中等
- 210. 课程表 II图论中等
- 310. 最小高度树图论中等
- 399. 除法求值图论中等
- 417. 太平洋大西洋水流问题图论中等
- 529. 扫雷游戏图论中等
- 542. 01 矩阵图论中等
- 547. 省份数量图论中等
- 695. 岛屿的最大面积图论中等
- 721. 账户合并图论中等
- 752. 打开转盘锁图论中等
- 785. 判断二分图图论中等
- 841. 钥匙和房间图论中等
- 934. 最短的桥图论中等
- 1091. 二进制矩阵中的最短路径图论中等
- 1254. 统计封闭岛屿的数目图论中等
- 1319. 连通网络的操作次数图论中等
- 127. 单词接龙图论困难
- 332. 重新安排行程图论困难
- 815. 公交路线图论困难
- 827. 最大人工岛图论困难
- 1293. 网格中的最短路径图论困难
回溯 29 题
- 46. 全排列回溯中等
- 78. 子集回溯中等
- 17. 电话号码的字母组合回溯中等
- 39. 组合总和回溯中等
- 22. 括号生成回溯中等
- 79. 单词搜索回溯中等
- 131. 分割回文串回溯中等
- 51. N 皇后回溯困难
- 40. 组合总和 II回溯中等
- 47. 全排列 II回溯中等
- 77. 组合回溯中等
- 90. 子集 II回溯中等
- 93. 复原 IP 地址回溯中等
- 216. 组合总和 III回溯中等
- 473. 火柴拼正方形回溯中等
- 491. 非递减子序列回溯中等
- 494. 目标和回溯中等
- 526. 优美的排列回溯中等
- 698. 划分为k个相等的子集回溯中等
- 797. 所有可能的路径回溯中等
- 37. 解数独回溯困难
- 52. N 皇后 II回溯困难
- 126. 单词接龙 II回溯困难
- 140. 单词拆分 II回溯困难
- 212. 单词搜索 II回溯困难
- 282. 给表达式添加运算符回溯困难
- 301. 删除无效的括号回溯困难
- 679. 24 点游戏回溯困难
- 980. 不同路径 III回溯困难
二分查找 41 题
- 35. 搜索插入位置二分查找简单
- 74. 搜索二维矩阵二分查找中等
- 34. 查找元素首尾位置二分查找中等
- 33. 搜索旋转排序数组二分查找中等
- 153. 寻找旋转数组最小值二分查找中等
- 4. 两个正序数组的中位数二分查找困难
- 69. x 的平方根二分查找简单
- 268. 丢失的数字二分查找简单
- 278. 第一个错误的版本二分查找简单
- 349. 两个数组的交集二分查找简单
- 350. 两个数组的交集 II二分查找简单
- 367. 有效的完全平方数二分查找简单
- 374. 猜数字大小二分查找简单
- 441. 排列硬币二分查找简单
- 704. 二分查找二分查找简单
- 81. 搜索旋转排序数组 II二分查找中等
- 162. 寻找峰值二分查找中等
- 167. 两数之和 II - 输入有序数组二分查找中等
- 209. 长度最小的子数组二分查找中等
- 378. 有序矩阵中第 K 小的元素二分查找中等
- 400. 第 N 位数字二分查找中等
- 456. 132 模式二分查找中等
- 475. 供暖器二分查找中等
- 528. 按权重随机选择二分查找中等
- 532. 数组中的 k-diff 数对二分查找中等
- 540. 有序数组中的单一元素二分查找中等
- 611. 有效三角形的个数二分查找中等
- 658. 找到 K 个最接近的元素二分查找中等
- 713. 乘积小于 K 的子数组二分查找中等
- 852. 山脉数组的峰顶索引二分查找中等
- 875. 爱吃香蕉的珂珂二分查找中等
- 1004. 最大连续1的个数 III二分查找中等
- 1011. 在 D 天内送达包裹的能力二分查找中等
- 1268. 搜索推荐系统二分查找中等
- 154. 寻找旋转排序数组中的最小值 II二分查找困难
- 315. 计算右侧小于当前元素的个数二分查找困难
- 354. 俄罗斯套娃信封问题二分查找困难
- 363. 矩形区域不超过 K 的最大数值和二分查找困难
- 493. 翻转对二分查找困难
- 862. 和至少为 K 的最短子数组二分查找困难
- 1044. 最长重复子串二分查找困难
贪心 21 题
- 121. 买卖股票的最佳时机贪心简单
- 55. 跳跃游戏贪心中等
- 45. 跳跃游戏 II贪心中等
- 763. 划分字母区间贪心中等
- 409. 最长回文串贪心简单
- 455. 分发饼干贪心简单
- 605. 种花问题贪心简单
- 680. 验证回文串 II贪心简单
- 860. 柠檬水找零贪心简单
- 122. 买卖股票的最佳时机 II贪心中等
- 134. 加油站贪心中等
- 179. 最大数贪心中等
- 324. 摆动排序 II贪心中等
- 334. 递增的三元子序列贪心中等
- 376. 摆动序列贪心中等
- 452. 用最少数量的箭引爆气球贪心中等
- 678. 有效的括号字符串贪心中等
- 881. 救生艇贪心中等
- 945. 使数组唯一的最小增量贪心中等
- 1328. 破坏回文串贪心中等
- 135. 分发糖果贪心困难
动态规划 69 题
- 70. 爬楼梯动态规划简单
- 118. 杨辉三角动态规划简单
- 198. 打家劫舍动态规划中等
- 279. 完全平方数动态规划中等
- 322. 零钱兑换动态规划中等
- 139. 单词拆分动态规划中等
- 300. 最长递增子序列动态规划中等
- 152. 乘积最大子数组动态规划中等
- 416. 分割等和子集动态规划中等
- 62. 不同路径动态规划中等
- 64. 最小路径和动态规划中等
- 5. 最长回文子串动态规划中等
- 1143. 最长公共子序列动态规划中等
- 72. 编辑距离动态规划困难
- 119. 杨辉三角 II动态规划简单
- 338. 比特位计数动态规划简单
- 509. 斐波那契数动态规划简单
- 746. 使用最小花费爬楼梯动态规划简单
- 63. 不同路径 II动态规划中等
- 91. 解码方法动态规划中等
- 97. 交错字符串动态规划中等
- 120. 三角形最小路径和动态规划中等
- 213. 打家劫舍 II动态规划中等
- 221. 最大正方形动态规划中等
- 241. 为运算表达式设计优先级动态规划中等
- 264. 丑数 II动态规划中等
- 309. 买卖股票的最佳时机含冷冻期动态规划中等
- 343. 整数拆分动态规划中等
- 377. 组合总和 Ⅳ动态规划中等
- 397. 整数替换动态规划中等
- 435. 无重叠区间动态规划中等
- 486. 预测赢家动态规划中等
- 516. 最长回文子序列动态规划中等
- 518. 零钱兑换 II动态规划中等
- 647. 回文子串动态规划中等
- 650. 两个键的键盘动态规划中等
- 673. 最长递增子序列的个数动态规划中等
- 714. 买卖股票的最佳时机含手续费动态规划中等
- 718. 最长重复子数组动态规划中等
- 740. 删除并获得点数动态规划中等
- 787. K 站中转内最便宜的航班动态规划中等
- 792. 匹配子序列的单词数动态规划中等
- 845. 数组中的最长山脉动态规划中等
- 877. 石子游戏动态规划中等
- 907. 子数组的最小值之和动态规划中等
- 918. 环形子数组的最大和动态规划中等
- 931. 下降路径最小和动态规划中等
- 983. 最低票价动态规划中等
- 1027. 最长等差数列动态规划中等
- 1048. 最长字符串链动态规划中等
- 1049. 最后一块石头的重量 II动态规划中等
- 10. 正则表达式匹配动态规划困难
- 44. 通配符匹配动态规划困难
- 115. 不同的子序列动态规划困难
- 123. 买卖股票的最佳时机 III动态规划困难
- 132. 分割回文串 II动态规划困难
- 174. 地下城游戏动态规划困难
- 188. 买卖股票的最佳时机 IV动态规划困难
- 233. 数字 1 的个数动态规划困难
- 312. 戳气球动态规划困难
- 329. 矩阵中的最长递增路径动态规划困难
- 403. 青蛙过河动态规划困难
- 410. 分割数组的最大值动态规划困难
- 741. 摘樱桃动态规划困难
- 871. 最低加油次数动态规划困难
- 887. 鸡蛋掉落动态规划困难
- 1235. 规划兼职工作动态规划困难
- 1312. 让字符串成为回文串的最少插入次数动态规划困难
- 1326. 灌溉花园的最少水龙头数目动态规划困难
数学 25 题
- 9. 回文数数学简单
- 66. 加一数学简单
- 258. 各位相加数学简单
- 263. 丑数数学简单
- 292. Nim 游戏数学简单
- 326. 3 的幂数学简单
- 628. 三个数的最大乘积数学简单
- 836. 矩形重叠数学简单
- 867. 转置矩阵数学简单
- 7. 整数反转数学中等
- 50. Pow(x, n)数学中等
- 59. 螺旋矩阵 II数学中等
- 172. 阶乘后的零数学中等
- 204. 计数质数数学中等
- 223. 矩形面积数学中等
- 289. 生命游戏数学中等
- 319. 灯泡开关数学中等
- 365. 水壶问题数学中等
- 386. 字典序排数数学中等
- 390. 消除游戏数学中等
- 453. 最小操作次数使数组元素相等数学中等
- 470. 用 Rand7() 实现 Rand10()数学中等
- 498. 对角线遍历数学中等
- 60. 排列序列数学困难
- 829. 连续整数求和数学困难
位运算 12 题
- 67. 二进制求和位运算简单
- 190. 颠倒二进制位位运算简单
- 191. 位 1 的个数位运算简单
- 231. 2 的幂位运算简单
- 461. 汉明距离位运算简单
- 476. 数字的补数位运算简单
- 29. 两数相除位运算中等
- 89. 格雷编码位运算中等
- 137. 只出现一次的数字 II位运算中等
- 260. 只出现一次的数字 III位运算中等
- 371. 两整数之和位运算中等
- 393. UTF-8 编码验证位运算中等
技巧 5 题
- 136. 只出现一次的数字技巧简单
- 169. 多数元素技巧简单
- 75. 颜色分类技巧中等
- 31. 下一个排列技巧中等
- 287. 寻找重复数技巧中等