Hot 100
大约 2 分钟
Hot 100
按解法类型分类整理,方便对照题型一起刷。一题可能涉及多种方法,这里归入它最核心的那一类。
数组 / 哈希 / 位运算
- 128 - 最长连续序列 — 哈希 Set + 起点枚举,O(n)
- 136 - 只出现一次的数字 — 异或位运算
- 169 - 多数元素 — 摩尔投票法 / 哈希
- 215 - 数组中的第 K 个最大元素 — 快速选择 / 堆
- 238 - 除自身以外数组的乘积 — 前后缀乘积,O(1) 空间优化
- 448 - 找到所有数组中消失的数字 — 原地 +n 标记 / 正负号翻转
- 461 - 汉明距离 — 异或后数 1(32 位 / Brian Kernighan)
栈 / 单调栈 / 单调队列 / 设计
- 155 - 最小栈 — 辅助最小栈
- 146 - LRU 缓存 — 哈希表 + 双向链表
- 239 - 滑动窗口最大值 — 单调双端队列(head 指针版),O(n)
- 739 - 每日温度 — 单调栈
链表
- 141 - 环形链表 — 快慢指针判环
- 142 - 环形链表 II — 快慢指针 + 数学推导找入口
- 160 - 相交链表 — 双指针首尾交替
- 206 - 反转链表 — 迭代 / 递归
- 234 - 回文链表 — 快慢指针找中点 + 反转后半段比较
字符串 / 滑动窗口 / 中心扩展
- 5 - 最长回文子串 — 中心扩展(奇偶双中心)/ 区间 DP / Manacher
- 438 - 找到字符串中所有字母异位词 — 固定窗口 + 26 字母计数种类比较
- 647 - 回文子串 — 中心扩展(奇偶双中心)/ DFS / 区间 DP
树
- 124 - 二叉树中的最大路径和 — 后序 DFS,最高点拐弯
- 226 - 翻转二叉树 — 递归交换左右
- 236 - 二叉树的最近公共祖先 — 后序递归分治
图 / DFS / BFS
- 200 - 岛屿数量 — DFS / BFS / 并查集
- 207 - 课程表 — 拓扑排序 + BFS(Kahn) / DFS 判环
Trie / 数据结构
- 208 - 实现 Trie(前缀树) — 多叉字典树
动态规划
- 53 - 最大子数组和 — Kadane 滚动变量 / 分治
- 139 - 单词拆分 — 记忆化 DFS / 完全背包 DP
- 198 - 打家劫舍 — 线性 DP / 滚动变量
- 221 - 最大正方形 — 二维
dp[i][j] = min(左上, 上, 左) + 1 - 300 - 最长递增子序列 — 记忆化 DFS / O(n²) DP / 贪心 + 二分 O(n log n)
- 322 - 零钱兑换 — 完全背包,求最小个数
- 494 - 目标和 — 转换成 0-1 背包方案数(
P=(S+T)/2)
分类速览
| 分类 | 题目数 |
|---|---|
| 数组 / 哈希 / 位运算 | 7 |
| 栈 / 设计 | 4 |
| 链表 | 5 |
| 字符串 / 滑动窗口 | 3 |
| 树 | 3 |
| 图 / DFS / BFS | 2 |
| Trie / 数据结构 | 1 |
| 动态规划 | 7 |
