大厂真题 / 备考技巧
Hot100 面试手撕真实考频排行
基于华为、腾讯、字节三家共 6139 篇面试手撕面经统计
核心结论
- Hot100 相关题共 115 道,其中 81 道至少出现过 1 次,34 道从未出现
- 头部断层严重:第 1 名出现 301 次,第 10 名仅 79 次,差近 4 倍
- Top 20 累计覆盖率约 70%——刷完这 20 道就能应对七成面试手撕
Top 10:刷完七成手撕能扛
| 排名 | 题目 | 难度 | 频次 |
|---|---|---|---|
| 1 | 无重复字符的最长子串 | Medium | 301 |
| 2 | LRU 缓存 | Medium | 226 |
| 3 | 数组中的第 K 个最大元素 | Medium | 138 |
| 4 | 最大子数组和 | Medium | 117 |
| 5 | 反转链表 | Easy | 112 |
| 6 | 最长递增子序列 | Medium | 107 |
| 7 | 有效的括号 | Easy | 100 |
| 8 | 岛屿数量 | Medium | 94 |
| 9 | K 个一组翻转链表 | Hard | 82 |
| 10 | 三数之和 | Medium | 79 |
各题要点
第 1 名:无重复字符的最长子串(301 次)
滑动窗口 + 哈希表,模板化解法。常见挂点:左指针跳转逻辑和哈希表更新时机。建议 5 分钟内 bug-free 默写。
第 2 名:LRU 缓存(226 次)
双向链表 + 哈希表,腾讯/字节客户端和后端几乎必考。实现细节多(dummy 节点、prev/next 指针操作),不要靠理解现场推,要做到闭着眼默写。
第 3 名:数组中第 K 个最大元素(138 次)
至少准备两种解法:快速选择 $O(n)$ 和堆 $O(n \log k)$。面试官常限制时空复杂度逼出快速选择。
第 4 名:最大子数组和(117 次)
动态规划入门,面试官常追问空间优化到 $O(1)$。
第 5 名:反转链表(112 次)
Top 10 唯一 Easy。递归 + 迭代两种写法都要背——面试官可能追问”用递归再写一遍”。
第 6 名:最长递增子序列(107 次)
$O(n^2)$ 基础 DP 和 $O(n \log n)$ 二分优化都要会。腾讯偏好考二分优化版本。
第 7 名:有效的括号(100 次)
栈入门,边界处理是常见挂点:空字符串、奇数长度、栈空遇到右括号。
第 8 名:岛屿数量(94 次)
字节最爱的 BFS/DFS 题,变种多(最大面积、周长、被围绕区域)。建议把网格遍历模板写熟。
第 9 名:K 个一组翻转链表(82 次)
Top 10 唯一 Hard,但真考——要练到能画图 + 写出来。
第 10 名:三数之和(79 次)
双指针经典,去重逻辑是高频挂点。
Top 11-20:次优先级
| 排名 | 题目 | 难度 | 频次 |
|---|---|---|---|
| 11 | 最长回文子串 | Medium | 78 |
| 12 | 合并 K 个升序链表 | Hard | 74 |
| 13 | 合并区间 | Medium | 73 |
| 14 | 删除链表的倒数第 N 个结点 | Medium | 68 |
| 15 | 编辑距离 | Medium | 64 |
| 16 | 接雨水 | Hard | 64 |
| 17 | 合并两个有序链表 | Easy | 63 |
| 18 | 二叉树的层序遍历 | Medium | 61 |
| 19 | 二叉树的最近公共祖先 | Medium | 58 |
| 20 | 买卖股票的最佳时机 | Easy | 52 |
关键提醒:
- 链表在 Top 20 占 5 道,是绝对高频章节
- 接雨水和合并 K 个升序链表是 Top 20 仅有的两道 Hard
- 二叉树两道连续上榜(层序遍历、LCA),字节/腾讯算法岗必考
Top 21-50:按章节分类
链表(5 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 环形链表 | Easy | 31 |
| 环形链表 II | Medium | 30 |
| 相交链表 | Easy | 28 |
| 两数相加 | Medium | 26 |
| 排序链表 | Medium | 20 |
动态规划(6 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 零钱兑换 | Medium | 49 |
| 最长公共子序列 | Medium | 39 |
| 爬楼梯 | Easy | 35 |
| 最长有效括号 | Hard | 25 |
| 分割等和子集 | Medium | 21 |
| 最小路径和 | Medium | 19 |
二分查找(4 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 搜索旋转排序数组 | Medium | 52 |
| 在排序数组中查找元素的第一个和最后一个位置 | Medium | 42 |
| 寻找旋转排序数组中的最小值 | Medium | 21 |
| 寻找两个正序数组的中位数 | Hard | 19 |
二叉树(3 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 二叉树的右视图 | Medium | 26 |
| 二叉树中的最大路径和 | Hard | 19 |
| 二叉搜索树中第 K 小的元素 | Medium | 16 |
回溯(2 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 全排列 | Medium | 40 |
| 括号生成 | Medium | 33 |
滑动窗口(2 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 滑动窗口最大值 | Hard | 37 |
| 最小覆盖子串 | Hard | 25 |
数组/哈希/堆(3 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 两数之和 | Easy | 52 |
| 寻找重复数 | Medium | 32 |
| 前 K 个高频元素 | Medium | 27 |
矩阵(2 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 螺旋矩阵 | Medium | 39 |
| 搜索二维矩阵 II | Medium | 26 |
栈(2 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 字符串解码 | Medium | 25 |
| 最小栈 | Medium | 16 |
图(1 道)
| 题目 | 难度 | 频次 |
|---|---|---|
| 课程表 | Medium | 22 |
34 道未出现题
以下题目在华为+腾讯+字节面经中未统计到出现记录(未出现不代表完全不考,但在时间紧张时可放到最后):
移动零、字母异位词分组、只出现一次的数字、杨辉三角、完全平方数、跳跃游戏 II、划分字母区间、柱状图中最大的矩形、搜索插入位置、搜索二维矩阵、分割回文串、N 皇后、实现 Trie、将有序数组转换为 BST、二叉树展开为链表、路径总和 III、随机链表的复制、矩阵置零、除自身以外数组的乘积、找到字符串中所有字母异位词
按时间预算的刷题建议
| 时间预算 | 怎么刷 | 覆盖场景 |
|---|---|---|
| 1 周以内 | 只刷 Top 10 | 最高频题不全军覆没 |
| 2-3 周 | Top 20 + 链表/DP 补全 | 七成手撕能上手 |
| 1 个月以上 | Top 50 + 章节系统补全 | 主流大厂基本不慌 |
| 充裕时间 | Hot 100 全刷 | 系统刷题更完整 |
补充说明
- 频次反映被问到的概率,不是分数权重,但相关性很高
- 本榜是面试手撕榜,不是笔试榜——笔试题分布有差异
- 公司间有侧重:LRU 在腾讯/字节考得多,岛屿数量在字节最高频,华为偏向考原题