- 基础类型
1.1 排序
1.2 树
1.3 图
1.4 回溯
1.5 滑动窗口
1.6 分治
1.7 贪心算法
1.8 动态规划
1.9 最大流
1.10 前缀和
1.11 双指针 - 题目汇总
- 力扣竞赛
- LeetCode 9大排序算法总结
- 排序总结 (待整理)
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 堆排序
- 快速排序
- 归并排序
- 计数排序 (待整理)
- 基数排序 (待整理)
56. 合并区间 (利用 Comparator 自定义排序)
239. 滑动窗口最大值 (单调队列、优先队列 (Comparator自定义排序)、TreeMap)
(错题)373. 查找和最小的K对数字 (堆、优先队列 (Comparator自定义排序))
(错题)23. 合并K个升序链表 (归并排序、优先队列 (Comparable自定义排序))
5864. 游戏中弱角色的数量 (数组排序)
144. 树的前序遍历
94. 树的中序遍历
145. 树的后序遍历
102. 树的层序遍历
104. 二叉树的最大深度 (DFS + BFS)
105. 从前序与中序遍历序列构造二叉树 (递归、迭代)
106. 从中序与后序遍历序列构造二叉树 (递归、迭代)
108. 将有序数组转换为二叉搜索树 (中序遍历二叉搜索树)
257. 二叉树的所有路径 (回溯、DFS、BFS)
98. 验证二叉搜索树 (一种通用递归,两种中序遍历(递归、迭代))
530. 二叉搜索树的最小绝对差 (中序遍历二叉搜索树)
133. 图的DFS和BFS
695. 岛屿的最大面积 (DFS、BFS)
1254. 统计封闭岛屿的数目 (DFS、BFS))
785. 判断二分图 (BFS、DFS)
542. 01 矩阵 (BFS (非常规方式))
934. 最短的桥 (DFS、BFS)
417. 太平洋大西洋水流问题 (DFS)
847. 访问所有节点的最短路径 (用状态进行BFS)
51. N 皇后 (回溯算法)
37. 解数独 (回溯)
79. 单词搜索 (DFS、回溯)
491. 递增子序列 (回溯、枝剪)
1423. 可获得的最大点数 (滑动窗口、DFS搜索(会超时))
239. 滑动窗口最大值 (单调队列、优先队列 (Comparator自定义排序)、TreeMap)
480. 滑动窗口中位数 (滑动窗口)
34. 在排序数组中查找元素的第一个和最后一个位置 (二分查找)
704. 二分查找
540. 有序数组中的单一元素 (二分查找)
大于target的最小的数的下标
441. 排列硬币 (小于等于target的最大的数)
452. 用最少数量的箭引爆气球 (贪心算法)
502. IPO (贪心算法、最大堆)
376. 摆动序列 (贪心、动态规划)
678. 有效的括号字符串 (贪心)
5. 最长回文子串 (动态规划)
1143. 最长公共子序列 (动态规划(经典题目))
279. 完全平方数 (动态规划、完全背包)
322. 零钱兑换 (完全背包、动态规划)
518. 零钱兑换 II (动态规划,非完全背包)
97. 交错字符串 (动态规划)
416. 分割等和子集 (0-1背包问题、动态规划)
486. 预测赢家 (动态规划、DFS、博弈论)
1027. 最长等差数列 (动态规划,二维数组、Map数组)
120. 三角形最小路径和 (动态规划、滚动数组优化空间)
213. 打家劫舍 (2) (动态规划、滚动数组优化空间) (通项公式)
72. 编辑距离 (动态规划)
1588. 所有奇数长度子数组的和 (前缀和)
1109. 航班预订统计 (前缀和)
题目汇总 (总入口)
1. 两数之和 (哈希表)
2. 两数相加 (链表)
3. 无重复字符的最长子串 (滑动窗口)
4. 寻找两个正序数组的中位数 (归并、二分查找)
5. 最长回文子串 (动态规划)
11. 盛最多水的容器 (双指针)
12. 整数转罗马数字
14. 最长公共前缀
15. 三数之和 (双指针)
18. 四数之和
19. 删除链表的倒数第N个结点 (快慢指针、栈)
20. 有效的括号 (栈)
21. 合并两个有序链表 (链表的指针操作)
23. 合并K个升序链表 (归并排序、优先队列 (Comparable自定义排序))
26. 删除有序数组中的重复项 (快慢指针)
31. 下一个排列 (某一个思想技巧)
33. 搜索旋转排序数组 (二分查找)
34. 在排序数组中查找元素的第一个和最后一个位置 (二分查找)
36. 有效的数独
37. 解数独 (回溯)
39. 组合总和 (递归、回溯)
41. 缺失的第一个正数
42. 接雨水 (动态规划、单调栈、双指针)
45. 跳跃游戏 II (贪心 or 动态规划)
46. 全排列 (DFS + 回溯)
47. 全排列 II (DFS + 回溯)
48. 旋转图像 (数学找规律)
50. Pow(x, n) (快速幂)
51. N 皇后 (回溯算法)
53. 最大子序和
56. 合并区间 (利用 Comparator 自定义排序)
62. 不同路径 (动态规划)
64. 最小路径和 (动态规划)
66. 加一 (数组模拟进位)
69. x 的平方根 (二分)
70. 爬楼梯 (最近重复子问题,斐波那契数列)
72. 编辑距离 (动态规划)
75. 颜色分类 (双指针)
76. 最小覆盖子串 (滑动窗口)
77. 组合 (回溯)
79. 单词搜索 (DFS、回溯)
80. 删除有序数组中的重复项 (双指针、快慢指针)
84. 柱状图中最大的矩形 (单调栈,哨兵思想)
93. 复原 IP 地址 (DFS,回溯)
94. 树的中序遍历
97. 交错字符串 (动态规划)
98. 验证二叉搜索树 (一种通用递归,两种中序遍历(递归、迭代))
100. 树的DFS和BFS (常用递归和层序)
101. 对称二叉树
102. 树的层序遍历
104. 二叉树的最大深度 (DFS + BFS)
105. 从前序与中序遍历序列构造二叉树 (递归、迭代)
106. 从中序与后序遍历序列构造二叉树 (递归、迭代)
108. 将有序数组转换为二叉搜索树 (中序遍历二叉搜索树)
118. 杨辉三角 (动态规划)
120. 三角形最小路径和 (动态规划、滚动数组优化空间)
121. 买卖股票的最佳时机 (1) (前缀和 || 动态规划)
122. xxx买卖股票的最佳时机 (2) (待整理)xxx
123. xxx买卖股票的最佳时机 (3) (待整理)xxx
125. 验证回文串
128. 最长连续序列
133. 图的DFS和BFS
134. 加油站 (贪心算法)
136. 只出现一次的数字 (位运算: 异或)
138. 复制带随机指针的链表 (迭代、回溯)
141. 环形链表 (1),散列表、双(快慢)指针
142. 环形链表 (2),散列表、双(快慢)指针
144. 树的前序遍历
145. 树的后序遍历
146. LRU 缓存机制 (链表操作(重点))
147. 对链表进行插入排序 (链表操作(重点))
155. 最小栈 (用类实现一个最小栈)
160. 相交链表 (双指针、哈希)
162. 寻找峰值 (二分查找变形)
165. 比较版本号 (双指针)
169. 多数元素(主要元素) (候选者、排序、哈希、随机抽样)
173. 二叉搜索树迭代器 (中序遍历二叉搜索树,递归,迭代)
198. 打家劫舍 (1) (动态规划) (通项公式)
199. 二叉树的右视图 (BFS、DFS)
200. 岛屿数量 (BFS、DFS、并查集(未整理并查集)) (通项公式)
206. 反转链表
207. 课程表 (1) (BFS)
210. 课程表 (2) (BFS)
213. 打家劫舍 (2) (动态规划、滚动数组优化空间) (通项公式)
215. 数组中的第K个最大元素 (各种排序方式都可以)
222. 完全二叉树的节点个数
224. 基本计算器
225. 用队列实现栈
226. 翻转二叉树 (递归、层序)
230. 二叉搜索树中第K小的元素 (中序遍历二叉搜索树,递归,迭代)
231. 2的幂 (位运算)
232. 用栈实现队列
234. 回文链表 (反转链表(206)、双指针)
239. 滑动窗口最大值 (单调队列、优先队列 (Comparator自定义排序)、TreeMap)
257. 二叉树的所有路径 (回溯、DFS、BFS)
260. 只出现一次的数字 (位运算)
268. 丢失的数字 (位运算、数学)
274. H 指数
279. 完全平方数 (动态规划、完全背包)
283. 移动零 (一维数组的坐标变换)
297. 二叉树的序列化与反序列化 (DFS)
300. 最长递增子序列 (动态规划)
316. 去除重复字母 (单调栈、贪心)
322. 零钱兑换 (完全背包、动态规划)
337. 打家劫舍 (3) (动态规划) (子解 -> 最终解)
338. 比特位计数 (动态规划、位运算)
342. 4的幂 (位运算)
373. 查找和最小的K对数字 (堆、优先队列 (Comparator自定义排序))
376. 摆动序列 (贪心、动态规划)
380. O(1) 时间插入、删除和获取随机元素 (O(1)时间删除数组)
400. 第 N 位数字 (数学)
404. 左叶子之和 (树的DFS、BFS)
414. 第三大的数
416. 分割等和子集 (0-1背包问题、动态规划)
417. 太平洋大西洋水流问题 (DFS)
429. N 叉树的层序遍历 (树的层序遍历)
436. 寻找右区间 (特殊二分查找、TreeMap)
438. 找到字符串中所有字母异位词 (滑动窗口)
441. 排列硬币 (小于等于target的最大的数)
442. 数组中重复的数据
448. 找到所有数组中消失的数字
452. 用最少数量的箭引爆气球 (贪心算法)
461. 汉明距离 (位运算、异或、逻辑与)
480. 滑动窗口中位数 (滑动窗口)
485. 最大连续 1 的个数
486. 预测赢家 (动态规划、DFS、博弈论)
491. 递增子序列 (回溯、枝剪)
495. 提莫攻击
502. IPO (贪心算法、最大堆)
506. 相对名次 (排序算法)
518. 零钱兑换 II (动态规划,非完全背包)
525. 连续数组 (前缀和 + 哈希表)
530. 二叉搜索树的最小绝对差 (中序遍历二叉搜索树)
540. 有序数组中的单一元素 (二分查找)
541. 反转字符串 II (字符串)
542. 01 矩阵 (BFS)
543. 二叉树的直径 (DFS)
560. 和为K的子数组 (前缀和 + 哈希表)
606. 根据二叉树创建字符串
617. 合并二叉树 (DFS、BFS)
622. 设计循环队列
628. 三个数的最大乘积
645. 错误的集合
671. 二叉树中第二小的节点
678. 有效的括号字符串 (贪心)
695. 岛屿的最大面积 (DFS、BFS)
697. 数组的度
704. 二分查找
785. 判断二分图 (BFS、DFS)
847. 访问所有节点的最短路径 (用状态进行BFS)
912. 排序数组 (各种排序)
914. 卡牌分组 (最大公约数)
930. 和相同的二元子数组 (哈希、滑动数组)
934. 最短的桥 (DFS、BFS)
1027. 最长等差数列 (动态规划,二维数组、Map数组)
1109. 航班预订统计 (前缀和)
1143. 最长公共子序列 (动态规划(经典题目))
1221. 分割平衡字符串 (二分查找)
1254. 统计封闭岛屿的数目 (DFS、BFS))
1338. 数组大小减半 (贪心算法)
1423. 可获得的最大点数 (滑动窗口、DFS搜索)
1588. 所有奇数长度子数组的和 (前缀和)
剑指 Offer 04. 二维数组中的查找
剑指 Offer 05. 替换空格
剑指 Offer 10- I. 斐波那契数列 (动态规划)
剑指 Offer 39. 数组中出现次数超过一半的数字
面试题 02.01. 移除重复节点
面试题 17.14. 最小K个数 (最大堆、快排)
中兴笔试. & 运算结果为 0 的区间的个数 (动态规划)
力扣竞赛 (总入口)
第 257 场周赛
5863. 统计特殊四元组
5864. 游戏中弱角色的数量 (数组排序)
5865. 访问完所有房间的第一天 (动态规划)
第 60 场双周赛
5846. 找到数组的中间位置 (前缀和)
5847. 找到所有的农场组 (DFS、BFS)
5848. 树上的操作