LeetCode Hot100 分类刷题汇总

目前进度68/100

对于算法底子不好的我,认为分类汇总的刷题的效率会高很多,通过这些总结希望自己回顾复习时能更快的回忆起解题思路。

如果发现我的代码有误或者你有不理解的地方,欢迎交流,可以在评论区留言。

传送门


数组

题目 难度 标签 题解
【31. 下一个排列】 MID 双指针、字典序 题解
【48. 旋转图像】 EASY 矩阵翻转 题解
【169. 多数元素】 EASY 摩尔投票法、数组处理 题解
【215. 数组中的第K个最大元素】 MID 快速选择排序 题解
【238. 除自身以外数组的乘积】 MID 前缀和、前后缀分解 题解
【448. 找到所有数组中消失的数字】 EASY 数组处理 题解

位运算

题目 难度 标签 题解
【338. 比特位计数】 EASY 位运算、枚举 题解
【136. 只出现一次的数字】 EASY 位运算、异或性质 题解
【461. 汉明距离】 EASY 位运算、异或性质 题解

二分查找

题目 难度 标签 题解
4. 寻找两个正序数组的中位数
【33. 搜索旋转排序数组】 MID 二分、二段性 题解
【34. 在排序数组中查找元素的第一个和最后一个位置】 MID 二分、二段性 题解
【240. 搜索二维矩阵 II】 MID 矩阵搜索、双指针 二分??? 题解

双指针

题目 难度 标签 题解
【3. 无重复字符的最长子串】 MID 双指针算法、哈希表、最长连续不重复子序列 题解
【5. 最长回文子串】 MID 双指针、最长回文子串、枚举 题解
【11. 盛最多水的容器】 MID 双指针、贪心、木桶短板效应 题解
【15. 三数之和】 MID 双指针、单调性、枚举 题解
【75. 颜色分类】 MID 三指针、排序 题解
【76. 最小覆盖子串】 HARD 滑动窗口、双指针、哈希表、字符串处理 题解
【283. 移动零】 EASY 双指针 题解
【287. 寻找重复数】 MID 双指针、快慢指针 题解
【647. 回文子串】 MID 双指针、回文子串 题解

链表

题目 难度 标签 题解
【2. 两数相加】 MID 单链表、两数相加 题解
【19. 删除链表的倒数第 N 个结点】 MID 单链表、头删法 题解
21. 合并两个有序链表
【23. 合并K个升序链表】 HARD 归并排序、优先队列、STL 题解
114. 二叉树展开为链表 题解
【141. 环形链表】 EASY 环形链表、双指针、快慢指针 题解
【142. 环形链表 II】 MID 环形链表、双指针、快慢指针 题解
【146. LRU 缓存】 MID 双链表、LRU缓存机制 题解
【148. 排序链表】 MID 链表排序、非递归、归并排序 题解
【160. 相交链表】 EASY 双指针 题解
【206. 反转链表】 EASY 翻转链表、双指针、递归 题解
【234. 回文链表】 EASY 翻转链表、双指针 题解

栈和队列

题目 难度 标签 题解
【20. 有效的括号】 EASY 栈操作、括号匹配 题解
【155. 最小栈】 MID 栈操作 题解
【394. 字符串解码】 MID 递归、DFS 栈??? 题解
【239. 滑动窗口最大值】 HARD 单调队列、滑动窗口 题解


单调栈

题目 难度 标签 题解
42. 接雨水
84. 柱状图中最大的矩形
85. 最大矩形
739. 每日温度

哈希表

题目 难度 标签 题解
【1. 两数之和】 EASY 哈希表、模拟 题解
49. 字母异位词分组
【128. 最长连续序列】 MID 哈希表unordered_set应用 题解
【347. 前 K 个高频元素】 MID 哈希表、优先队列、小根堆 题解
【438. 找到字符串中所有字母异位词】 MID 哈希表、双指针、滑动窗口 题解
【560. 和为 K 的子数组】 MID 前缀和、哈希表 题解

二叉树 (考点:链表,递归,DFS)

题目 难度 标签 题解
【94. 二叉树的中序遍历】 EASY 中序遍历、DFS、栈操作 题解
【96. 不同的二叉搜索树】 MID 二叉树形态映射、动态规划、乘法原理 题解
【98. 验证二叉搜索树】 MID 递归、DFS 题解
【101. 对称二叉树】 EASY 递归、DFS 题解
【102. 二叉树的层序遍历】 MID 层序遍历、BFS 题解
【104. 二叉树的最大深度】 EASY 二叉树深度、DFS 题解
【105. 从前序与中序遍历序列构造二叉树】 MID 构造二叉树、前序(中序)遍历、哈希表 题解
【114. 二叉树展开为链表】 MID 先序遍历 题解
【124. 二叉树中的最大路径和】 HARD 二叉树遍历、递归、最近公共祖先(LCA)思想 题解
【226. 翻转二叉树】 EASY 翻转二叉树、递归 题解
【236. 二叉树的最近公共祖先】 MID 二叉树最近公共祖先、DFS 题解
297. 二叉树的序列化与反序列化
【337. 打家劫舍 III】 MID 树形DP、动态规划 题解
【437. 路径总和 III】 MID 前序遍历、哈希表、前缀和、DFS 题解
【538. 把二叉搜索树转换为累加树】 MID 二叉搜索树、DFS 题解
【543. 二叉树的直径】 EASY 二叉树直径、DFS 题解
617. 合并二叉树
208. 实现 Trie (前缀树)

图论

题目 难度 标签 题解
【399. 除法求值】 MID 图论、Floyd求最短路 题解

回溯及DFS

题目 难度 标签 题解
【17. 电话号码的字母组合】 MID 回溯及DFS、字符串处理 题解
【22. 括号生成】 MID 括号序列、递归、卡特兰数(组合计数) 题解
【39. 组合总和】 MID 回溯及DFS 题解
【46. 全排列】 MID 回溯及DFS 题解
【78. 子集】 MID 回溯、位运算、二进制枚举 题解
【79. 单词搜索】 MID 回溯及DFS 题解
【200. 岛屿数量】 MID DFS、Flood-fill算法 题解
【301. 删除无效的括号】 HARD DFS、剪枝、双指针 题解
【494. 目标和】重复1次 MID 回溯及DFS、动态规化(不好理解) 题解

BFS

题目 难度 标签 题解
207. 课程表

动态规划

题目 难度 标签 题解
10. 正则表达式匹配
32. 最长有效括号
53. 最大子数组和
62. 不同路径
64. 最小路径和
70. 爬楼梯
72. 编辑距离
121. 买卖股票的最佳时机
139. 单词拆分
152. 乘积最大子数组
221. 最大正方形
279. 完全平方数
【300. 最长递增子序列】 MID 经典DP、最长上升子序列问题、二分 题解
309. 最佳买卖股票时机含冷冻期
312. 戳气球
322. 零钱兑换
【337. 打家劫舍 III】 MID 树形DP、动态规划 题解
416. 分割等和子集

贪心

题目 题解
55. 跳跃游戏
56. 合并区间
406. 根据身高重建队列
621. 任务调度器
581. 最短无序连续子数组
253. 会议室 II「会员题」

其他待整理

82 删除链表重复元素 https://www.acwing.com/activity/content/code/content/6486863/

83 排序链表去重 https://www.acwing.com/activity/content/code/content/6491029/

150 栈操作,求中缀表达式 https://www.acwing.com/activity/content/code/content/6502857/

328 奇偶链表,链表合并 https://www.acwing.com/activity/content/code/content/6491188/


参考资料

【AcWing - LeetCode究极班】

【文档 LeetCode Hot100 分类版 by tonngw】