LeetCode HOT 100
参考你给的页面,先搭一个可直接填充内容的页面框架。现在菜单 Hot100 会跳到这个页面,不再走不存在的 /categories/hot100/。
刷题总览
- 开始时间:2026-03-13
- 结束时间:待定
- 刷题语言:C++
- 当前进度:0 / 100
- 使用方式:每做完一题,把“状态 / 题解链接 / 备注”补上即可
推荐记录模板
你可以在每道题对应的文章里统一使用下面这个模板:
1 2 3 4 5 6 7 8
| ### 题目名称 - 题目链接: - 难度: - 关键思路: - 时间复杂度: - 空间复杂度: - 易错点: - 复盘:
|
一、哈希
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 1 |
两数之和 |
进行中 |
查看题解 |
哈希表入门 |
| 2 |
字母异位词分组 |
待做 |
|
|
| 3 |
最长连续序列 |
待做 |
|
1. 两数之和
题面
给定一个整数数组和目标值,返回和等于目标值的两个下标。
示例
示例 1
1 2
| 输入:nums = [2,7,11,15], target = 9 输出:[0,1]
|
示例 2
1 2
| 输入:nums = [3,2,4], target = 6 输出:[1,2]
|
思路
参考页的写法一般是:先放题面,再放示例,接着写“解法”。
这里最适合先写 解法 1:哈希表。
核心想法:
- 遍历数组中的每个数
nums[i]。
- 先计算还需要的值
target - nums[i]。
- 如果这个值之前出现过,直接返回两个下标。
- 如果没有出现过,就把当前值和下标存进哈希表。
解法 1:哈希表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> mp;
for (int i = 0; i < nums.size(); ++i) { int need = target - nums[i]; if (mp.count(need)) { return {mp[need], i}; } mp[nums[i]] = i; }
return {}; } };
|
复杂度分析
- 时间复杂度:$O(n)$
- 空间复杂度:$O(n)$
易错点
- 不能先把当前元素放进哈希表,再查自己需要的值,否则可能错误使用同一个元素。
- 返回的是下标,不是元素值。
- 如果题目保证有唯一解,直接返回即可;否则要额外处理无解情况。
复盘
- 这是 Hot100 里非常典型的哈希表入门题。
- 关键不是“枚举两个数”,而是“把寻找另一个数的过程优化成一次查询”。
- 后面像“字母异位词分组”“最长连续序列”也都会继续用到哈希思想。
可直接复用的写法模板
后面每题都可以按这个格式写:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ## 题号. 题目名
- 题目链接: - 难度: - 标签: - 状态:
### 题面
一句话概括题意。
### 示例
```text 输入: 输出:
|
思路
先写核心想法,再写为什么这样做。
解法 1
1 2 3 4 5 6 7 8 9 10
| ```
### 复杂度分析
- 时间复杂度: - 空间复杂度:
### 易错点
### 复盘
|
二、双指针
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 4 |
移动零 |
待做 |
|
|
| 5 |
盛最多水的容器 |
待做 |
|
|
| 6 |
三数之和 |
待做 |
|
|
| 7 |
接雨水 |
待做 |
|
三、滑动窗口
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 8 |
无重复字符的最长子串 |
待做 |
|
|
| 9 |
找到字符串中所有字母异位词 |
待做 |
|
四、子串
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 10 |
和为 K 的子数组 |
待做 |
|
|
| 11 |
滑动窗口最大值 |
待做 |
|
|
| 12 |
最小覆盖子串 |
待做 |
|
五、普通数组
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 13 |
最大子数组和 |
待做 |
|
|
| 14 |
合并区间 |
待做 |
|
|
| 15 |
轮转数组 |
待做 |
|
|
| 16 |
除自身以外数组的乘积 |
待做 |
|
|
| 17 |
缺失的第一个正数 |
待做 |
|
|
| 18 |
矩阵置零 |
待做 |
|
|
| 19 |
螺旋矩阵 |
待做 |
|
|
| 20 |
旋转图像 |
待做 |
|
|
| 21 |
搜索二维矩阵 II |
待做 |
|
六、链表
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 22 |
相交链表 |
待做 |
|
|
| 23 |
反转链表 |
待做 |
|
|
| 24 |
回文链表 |
待做 |
|
|
| 25 |
环形链表 |
待做 |
|
|
| 26 |
环形链表 II |
待做 |
|
|
| 27 |
合并两个有序链表 |
待做 |
|
|
| 28 |
两数相加 |
待做 |
|
|
| 29 |
删除链表的倒数第 N 个结点 |
待做 |
|
|
| 30 |
两两交换链表中的节点 |
待做 |
|
|
| 31 |
K 个一组翻转链表 |
待做 |
|
|
| 32 |
随机链表的复制 |
待做 |
|
|
| 33 |
排序链表 |
待做 |
|
|
| 34 |
合并 K 个升序链表 |
待做 |
|
|
| 35 |
LRU 缓存 |
待做 |
|
七、二叉树
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 36 |
二叉树的中序遍历 |
待做 |
|
|
| 37 |
二叉树的最大深度 |
待做 |
|
|
| 38 |
翻转二叉树 |
待做 |
|
|
| 39 |
对称二叉树 |
待做 |
|
|
| 40 |
二叉树的直径 |
待做 |
|
|
| 41 |
二叉树的层序遍历 |
待做 |
|
|
| 42 |
将有序数组转换为二叉搜索树 |
待做 |
|
|
| 43 |
验证二叉搜索树 |
待做 |
|
|
| 44 |
二叉搜索树中第 K 小的元素 |
待做 |
|
|
| 45 |
二叉树的右视图 |
待做 |
|
|
| 46 |
二叉树展开为链表 |
待做 |
|
|
| 47 |
从前序与中序遍历序列构造二叉树 |
待做 |
|
|
| 48 |
路径总和 III |
待做 |
|
|
| 49 |
二叉树的最近公共祖先 |
待做 |
|
|
| 50 |
二叉树中的最大路径和 |
待做 |
|
八、图论
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 51 |
岛屿数量 |
待做 |
|
|
| 52 |
腐烂的橘子 |
待做 |
|
|
| 53 |
课程表 |
待做 |
|
|
| 54 |
实现 Trie(前缀树) |
待做 |
|
九、回溯
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 55 |
全排列 |
待做 |
|
|
| 56 |
子集 |
待做 |
|
|
| 57 |
电话号码的字母组合 |
待做 |
|
|
| 58 |
组合总和 |
待做 |
|
|
| 59 |
括号生成 |
待做 |
|
|
| 60 |
单词搜索 |
待做 |
|
|
| 61 |
分割回文串 |
待做 |
|
|
| 62 |
N 皇后 |
待做 |
|
十、二分查找
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 63 |
搜索插入位置 |
待做 |
|
|
| 64 |
搜索二维矩阵 |
待做 |
|
|
| 65 |
在排序数组中查找元素的第一个和最后一个位置 |
待做 |
|
|
| 66 |
搜索旋转排序数组 |
待做 |
|
|
| 67 |
寻找旋转排序数组中的最小值 |
待做 |
|
|
| 68 |
寻找两个正序数组的中位数 |
待做 |
|
十一、栈
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 69 |
有效的括号 |
待做 |
|
|
| 70 |
最小栈 |
待做 |
|
|
| 71 |
字符串解码 |
待做 |
|
|
| 72 |
每日温度 |
待做 |
|
|
| 73 |
柱状图中最大的矩形 |
待做 |
|
十二、堆
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 74 |
数组中的第 K 个最大元素 |
待做 |
|
|
| 75 |
前 K 个高频元素 |
待做 |
|
|
| 76 |
数据流的中位数 |
待做 |
|
十三、贪心算法
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 77 |
买卖股票的最佳时机 |
待做 |
|
|
| 78 |
跳跃游戏 |
待做 |
|
|
| 79 |
跳跃游戏 II |
待做 |
|
|
| 80 |
划分字母区间 |
待做 |
|
十四、动态规划
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 81 |
爬楼梯 |
待做 |
|
|
| 82 |
杨辉三角 |
待做 |
|
|
| 83 |
打家劫舍 |
待做 |
|
|
| 84 |
完全平方数 |
待做 |
|
|
| 85 |
零钱兑换 |
待做 |
|
|
| 86 |
单词拆分 |
待做 |
|
|
| 87 |
最长递增子序列 |
待做 |
|
|
| 88 |
乘积最大子数组 |
待做 |
|
|
| 89 |
分割等和子集 |
待做 |
|
|
| 90 |
最长有效括号 |
待做 |
|
十五、多维动态规划
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 91 |
不同路径 |
待做 |
|
|
| 92 |
最小路径和 |
待做 |
|
|
| 93 |
最长回文子串 |
待做 |
|
|
| 94 |
最长公共子序列 |
待做 |
|
|
| 95 |
编辑距离 |
待做 |
|
十六、技巧
| 编号 |
题目 |
状态 |
题解链接 |
备注 |
| 96 |
只出现一次的数字 |
待做 |
|
|
| 97 |
多数元素 |
待做 |
|
|
| 98 |
颜色分类 |
待做 |
|
|
| 99 |
下一个排列 |
待做 |
|
|
| 100 |
寻找重复数 |
待做 |
|
后续建议
- 每做完一题,新建一篇文章,分类统一放到
Algorithm 或 Hot100。
- 把题解文章链接回填到本页“题解链接”列。
- 如果你希望页面更像参考站,我可以继续帮你补:
- 进度打卡区
- 每题折叠面板
- 按语言切换代码块
- 自动统计已完成数量