Appearance
力扣算法题单
《剑指 offer》《LeetCode热题 100》必刷,这份题单来自知乎 ACM 大佬
数据结构
数组&双指针
- [x] LeetCode 1. 两数之和(Map 完成、双指针做法需要排序)
- [x] LeetCode 4. 寻找两个正序数组的中位数(双指针+数组划分)
- [x] LeetCode 15. 三数之和(排序+双指针+重复判断)
- [x] LeetCode 75. 颜色分类(双指针可以一次 for 循环)
- [x] LeetCode 76. 最小覆盖子串(双指针+滑动窗口)
- [x] LeetCode 142. 环形链表 II(快慢指针)
- [x] LeetCode 234. 回文链表(快慢指针+链表反转)
- [x] LeetCode 283. 移动零(双指针)
链表
- [x] LeetCode 19. 删除链表的倒数第 N 个结点(栈解决,递归同理)
- [x] LeetCode 148. 排序链表(归并排序思路+有序链表合并)
- [x] LeetCode 160. 相交链表(双指针)
- [x] LeetCode 206. 反转链表
队列&栈
- [x] LeetCode 20. 有效的括号(栈调用,注意细节)
- [x] LeetCode 21. 合并两个有序链表(递归)
这两道题LeetCode题解有点一言难尽,建议直接看代码理解
LeetCode 84. 柱状图中最大的矩形
LeetCode 85. 最大矩形
- [x] LeetCode 84. 柱状图中最大的矩形(单调栈、常数再优化)
- [x] LeetCode 85. 最大矩形(柱状图暴力优化、单调栈与84相同)
- [x] LeetCode 155. 最小栈(单调栈)
- [x] LeetCode 239. 滑动窗口最大值(单调队列)
- [x] LeetCode 394. 字符串解码(栈,类比括号匹配)
- [x] LeetCode 739. 每日温度(单调栈)
- [x] LeetCode 3. 无重复字符的最长子串(滑动窗口)
哈希表
- [x] LeetCode 49. 字母异位词分组(质数思路哈希表)
- [x] LeetCode 128. 最长连续序列(哈希表)
- [x] LeetCode 141. 环形链表(快慢指针、哈希表)
- [x] LeetCode 146. LRU 缓存机制(哈希表、双向链表)
- [x] LeetCode 560. 和为 K 的子数组(哈希表+前缀和)
二叉树
- [x] LeetCode 94. 二叉树的中序遍历
- [x] LeetCode 101. 对称二叉树
- [x] LeetCode 102. 二叉树的层序遍历
- [x] LeetCode 104. 二叉树的最大深度
- [x] LeetCode 105. 从前序与中序遍历序列构造二叉树
- [x] LeetCode 114. 二叉树展开为链表
- [x] LeetCode 543. 二叉树的直径
二叉搜索树
算法
模拟
- [x] LeetCode 48. 旋转图像(两次对折)
贪心
- [x] LeetCode 11. 盛最多水的容器(双指针+贪心)
- [x] LeetCode 714. 买卖股票的最佳时机含手续费(动态规划、贪心)
- [x] LeetCode 122. 买卖股票的最佳时机 II(动态规划、贪心)
- [x] LeetCode 55. 跳跃游戏(贪心)
- [x] LeetCode 309. 最佳买卖股票时机含冷冻期(动态规划、贪心)
- [x] LeetCode 406. 根据身高重建队列(排序+贪心)
二分
- [x] LeetCode 33. 搜索旋转排序数组 (二分,多判断几种情况即可)
- [x] LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(两次二分)
递归&回溯
- [x] LeetCode 17. 电话号码的字母组合(dfs+回溯)
- [x] LeetCode 22. 括号生成(dfs+回溯)(dfs+回溯)
- [x] LeetCode 39. 组合总和(dfs+回溯)
- [x] LeetCode 46. 全排列(dfs+回溯)
- [x] LeetCode 78. 子集
- [x] LeetCode 79. 单词搜索
- [x] LeetCode 226. 翻转二叉树
深度优先搜索 DFS
- [x] LeetCode 236. 二叉树的最近公共祖先
- [x] LeetCode 301. 删除无效的括号(dfs+回溯)
宽度优先搜索 BFS
分治
- [x] LeetCode 53. 最大子序和(动态规划(贪心)、分治线段树更优)
排序算法
- [x] LeetCode 56. 合并区间
- [x] LeetCode 215. 数组中的第 K 个最大元素(快速选择)
- [x] LeetCode 347. 前 K 个高频元素
Manacher 算法
字典树 Trie
动态规划
- [ ] LeetCode 10. 正则表达式匹配
- [ ] LeetCode 32. 最长有效括号
- [ ] LeetCode 42. 接雨水
- [ ] LeetCode 62. 不同路径
- [ ] LeetCode 64. 最小路径和
- [ ] LeetCode 70. 爬楼梯
- [ ] LeetCode 72. 编辑距离
- [ ] LeetCode 139. 单词拆分
- [ ] LeetCode 152. 乘积最大子数组
- [x] LeetCode 198. 打家劫舍
- [x] LeetCode 213. 打家劫舍 II(分类讨论)
- [x] LeetCode 337. 打家劫舍 III
- [ ] LeetCode 221. 最大正方形
- [ ] LeetCode 300. 最长递增子序列
- [ ] LeetCode 416. 分割等和子集
- [ ] LeetCode 494. 目标和