面试手撕 / 腾讯

腾讯面试高频手撕【27届暑期实习版】

数据来源:3114 篇牛客 + 670 篇小红书面经,共 3784 篇,2524 条手撕记录(2026年4月更新)

数据概览

腾讯面试手撕分为三大类,按题目类型和频次统计:

类别 出现次数 题目数 占比 适用岗位
LeetCode 原题 1833 次 253 道 73% 所有技术岗
原创 / 场景算法题 633 次 375 道 25% 所有技术岗
算法岗 ML/DL 手撕 58 次 19 类 2% 算法岗 / 大模型岗
  • 后端 / 前端 / 客户端岗:主考 LeetCode 原题 + 原创场景题,不考 ML 手撕
  • 算法岗 / 大模型岗:三类全要准备,但 ML 手撕压力比字节小

腾讯 vs 字节:3 个核心区别

面腾讯和面字节的准备策略不一样。基于两家公司的面经数据对比,有三个核心区别:

区别一:模式一样,都以 ACM 模式为主。 字节强制 ACM 模式,腾讯同样以 ACM 模式为主。平时练习一定要用 ACM 模式写,不能只用 LeetCode 的核心代码模式。

区别二:非 LeetCode 题占比差距巨大。 字节的非 LC 题只占 7%,但腾讯高达 25%——四分之一的手撕题不是 LeetCode 原题。只刷 LeetCode 在腾讯面试时更容易遇到没见过的题。

区别三:LRU 是腾讯的绝对霸主。 LRU 缓存在腾讯出现了 123 次(第 1 名),字节为 72 次(第 2 名),腾讯对 LRU 的考察强度接近字节的 2 倍。面腾讯,必须能手写 LRU(双向链表 + 哈希表)。


LeetCode 原题 TOP10(1833 次 · 253 道 · 占 73%)

LeetCode 原题是所有技术岗的绝对主力,仅 TOP 10 就贡献了 596 次,占 LC 总频次的 33%。

排名 题目 频次
1 LeetCode 146 LRU 缓存 123 次
2 LeetCode 912 排序数组(手写快排) 85 次
3 LeetCode 3 无重复字符最长子串 76 次
4 LeetCode 53 最大子数组和 60 次
5 LeetCode 215 第 K 个最大元素 60 次
6 LeetCode 300 最长递增子序列 44 次
7 LeetCode 206 反转链表 41 次
8 LeetCode 20 有效的括号 41 次
9 LeetCode 415 字符串相加 36 次
10 LeetCode 21 合并两个有序链表 30 次

腾讯 vs 字节 TOP10 频次对比

题目 腾讯频次 字节频次 说明
LC 146 LRU 缓存 123 72 腾讯考察强度接近字节 2 倍
LC 912 排序数组 85 15 腾讯特别喜欢考手写快排
LC 3 无重复字符最长子串 76 129 字节的脸面题
LC 415 字符串相加 36 14 腾讯 TOP10,字节不算高频
LC 206 反转链表 41 40 两家都是链表基本功

几个值得注意的点:

  • LRU 123 次,断层领先,是腾讯的标志性题目。面试官要求手写双向链表 + 哈希表,禁用 OrderedDict
  • 排序数组 85 次,腾讯特别喜欢考手写快排(不是调 sort),字节这道题只有 15 次
  • 字符串相加 36 次,这道题在字节不算高频(14 次),但在腾讯是 TOP 10
  • 链表题密度极高,TOP 50 里有 10 道链表题

LeetCode 高频 TOP50 · 6 大分类详解

这 50 道题覆盖了 LeetCode 原题总频次(1833 次)的 67%,是备考腾讯面试手撕的最高性价比清单。按算法类型分为 6 大类:

分类 题目数 总频次
栈 / 堆 / 哈希 / 设计 8 道 307 次
排序 + 数组 + 矩阵 8 道 246 次
字符串 + 滑动窗口 + 双指针 8 道 209 次
链表 10 道 194 次
动态规划 8 道 163 次
二分 + 二叉树 + 搜索 + 数学 8 道 106 次

栈 / 堆 / 哈希 / 设计(8 道 · 307 次)— LRU 断层领先

排名 题目 频次
1 LC 146 LRU 缓存 123 次
2 LC 215 第 K 个最大元素 60 次
3 LC 20 有效的括号 41 次
4 LC 1 两数之和 23 次
5 LC 224 基本计算器 18 次
6 LC 347 前 K 个高频元素 16 次
7 LC 239 滑动窗口最大值 14 次
8 LC 231 2 的幂 12 次
  • LRU 缓存 123 次断层领先,面试要求手写双向链表 + 哈希表,不能用 OrderedDict。写完还会被追问淘汰逻辑和时间复杂度
  • 第 K 个最大元素要掌握快速选择和小根堆两种写法,面试官经常追问最坏情况复杂度
  • 基本计算器考栈处理嵌套括号和运算优先级,腾讯出现频率明显高于其他公司

排序 + 数组 + 矩阵(8 道 · 246 次)— 手写快排是腾讯特色

排名 题目 频次
1 LC 912 排序数组(手写快排) 85 次
2 LC 53 最大子数组和 60 次
3 LC 56 合并区间 29 次
4 LC 442 数组中重复的数据 22 次
5 LC 240 搜索二维矩阵 II 18 次
6 LC 75 颜色分类 12 次
7 LC 88 合并两个有序数组 10 次
8 LC 54 螺旋矩阵 10 次
  • 排序数组 85 次排全榜第 2,腾讯是字节的 3 倍(字节仅 28 次),是腾讯独有的高频考点。常见追问:快排最坏情况怎么优化?快排是稳定排序吗?手写一个归并排序
  • 最大子数组和用 Kadane 算法,面试官会追问:如果要返回子数组本身呢?如果允许环形呢(LC 918)?

字符串 + 滑动窗口 + 双指针(8 道 · 209 次)

排名 题目 频次
1 LC 3 无重复字符最长子串 76 次
2 LC 415 字符串相加 36 次
3 LC 165 比较版本号 23 次
4 LC 15 三数之和 20 次
5 LC 43 字符串相乘 17 次
6 LC 209 长度最小的子数组 17 次
7 LC 42 接雨水 10 次
8 LC 76 最小覆盖子串 10 次
  • LC 3 出现 76 次,三大公司共同的脸面题,必须做到 10 分钟内 bug-free
  • 字符串相加 + 字符串相乘是腾讯特色高频题,本质是大数运算。面试官还可能追问大数减法和小数点处理
  • 比较版本号是工程场景题,代码不难但细节多(前导零、长度不等)

链表(10 道 · 194 次)— 题数最多

排名 题目 频次
1 LC 206 反转链表 41 次
2 LC 21 合并两个有序链表 30 次
3 LC 23 合并 K 个升序链表 28 次
4 LC 25 K 个一组翻转链表 22 次
5 LC 19 删除链表倒数第 N 个结点 20 次
6 LC 82 删除排序链表中的重复元素 II 12 次
7 LC 160 相交链表 11 次
8 LC 141 环形链表 10 次
9 LC 142 环形链表 II 10 次
10 LC 24 两两交换链表中的节点 10 次
  • 链表是腾讯高频题中题目数量最多的分类(10 道),遇到链表题的概率极高
  • 反转链表系列(LC 206 + LC 25)两道合计 63 次,面试官惯用套路:先考 LC 206 基础反转,写完接着问「K 个一组翻转呢?」——两道必须一起练
  • 环形链表(LC 141)+ 找环入口(LC 142)合计 20 次,Floyd 快慢指针经典应用,常被追问「为什么快指针走两步慢指针走一步一定会相遇?」

动态规划(8 道 · 163 次)

排名 题目 频次
1 LC 300 最长递增子序列 44 次
2 LC 5 最长回文子串 25 次
3 LC 322 零钱兑换 25 次
4 LC 72 编辑距离 17 次
5 LC 70 爬楼梯 15 次
6 LC 121 买卖股票的最佳时机 13 次
7 LC 718 最长重复子数组 13 次
8 LC 1262 可被三整除的最大和 11 次
  • 最长递增子序列 44 次是腾讯 DP 的第一名,必须掌握 $O(n^2)$ 基础 DP 和 $O(n \log n)$ 贪心 + 二分两种写法,面试官大概率追问优化
  • 可被三整除的最大和是腾讯的独有高频题,其他公司很少考,用 DP + 余数分类
  • 编辑距离是 Hard 难度经典二维 DP,面试官经常追问空间优化($O(mn) \to O(n)$)

二分 + 二叉树 + 搜索 + 数学(8 道 · 106 次)

排名 题目 频次
1 LC 102 二叉树层序遍历 25 次
2 LC 200 岛屿数量 13 次
3 LC 22 括号生成 12 次
4 LC 704 二分查找 12 次
5 LC 33 搜索旋转排序数组 12 次
6 LC 287 寻找重复数 12 次
7 LC 153 寻找旋转排序数组中的最小值 10 次
8 LC 470 用 Rand7() 实现 Rand10() 10 次
  • 层序遍历 25 次是树类题的入口,常见追问:锯齿形输出(LC 103)?只输出最右边节点(LC 199)?建议一起练
  • 搜索旋转排序数组系列(LC 33 + LC 153)合计 22 次,考二分查找变种,可能追问有重复元素怎么处理
  • Rand7 实现 Rand10 是腾讯独有高频题,核心是拒绝采样:两次 Rand7() 构造 [1,49] 均匀分布,取 [1,40] 映射到 [1,10]

原创 / 场景算法题(633 次 · 375 道 · 占 25%)

这是腾讯手撕和字节最大的不同。字节的非 LC 题只占 7%,而腾讯高达 25%。这 375 道题不是 LeetCode 原题,包括面试官自己出的原创题、经典算法实现、场景编程题等。

代表题 1:带优先级的括号匹配(8 次)

括号有优先级:{ > [ > ({[()]} 合法,[{}] 不合法。考察栈 + 优先级判断。这道题 LeetCode 上没有对应原题,纯属腾讯面试官的偏好。

代表题 2:等概率随机抽样(9 次)

30 万员工用 rand16() 抽 1 万人,要求每个人中奖概率相等。考察蓄水池采样或扩展随机数范围。这个系列有多个变体,都是围绕「如何用有限范围的随机数生成器实现大范围均匀采样」。

代表题 3:消消乐(4 次)

长度为 $n$ 的 1-9 数字串,相邻两数之和为 10 则消除,求最短串长度。考察栈模拟

其他高频原创题

题目 考点
敏感词过滤 Trie + KMP
视频字幕快速查找 TreeMap 二分
微信红包算法 二倍均值法
10 亿整数排序去重 位图 BitMap

这类题没法刷原题,但题型有规律——核心考察的是能不能把实际场景抽象成算法问题。准备方式:熟练掌握栈、Trie、二分、采样等基础算法后,重点练习「从场景到算法」的转化能力。


算法岗 ML/DL 手撕(58 次 · 19 类 · 占 2%)

仅算法岗 / 大模型算法岗考,后端 / 前端 / 客户端不考。

排名 题目 频次
1 Multi-Head Attention 21 次
2 Grouped Query Attention 5 次
3 Self-Attention 5 次
4 Cross-Attention 4 次
5 MLP / 全连接网络 3 次
6 InfoNCE Loss 3 次
  • MHA 一题就占 ML 总频次的 36%,大模型方向几乎必考
  • 腾讯 ML 手撕总频次(58 次)远低于字节(277 次),ML 手撕压力比字节小
  • 但不能因此不准备——GQA / Cross-Attention / InfoNCE 等新题在上升

不同岗位备考重点

后端 / 前端 / 客户端

  • 主要考 LeetCode 原题(占 73%),TOP10 必须全部熟练
  • 原创 / 场景题也会遇到(占 25%),需要注意场景抽象能力
  • 不考 ML/DL 手撕
  • LRU + 手写快排是两道基本功,必须熟练

算法岗 / 大模型算法岗

  • LeetCode + ML/DL 手撕 + 原创题,三类都要准备
  • MHA 出现 21 次,大模型方向几乎必考
  • LeetCode 也不能放松,LC 原题仍然是主力
  • GQA / Cross-Attention / InfoNCE 等新题也在上升

全榜 TOP10 · 优先刷题顺序

时间紧先刷这 10 道,覆盖约 33% 的腾讯 LC 手撕考察概率:

优先级 题目 频次
1 LeetCode 146 LRU 缓存 123 次
2 LeetCode 912 排序数组 85 次
3 LeetCode 3 无重复字符最长子串 76 次
4 LeetCode 53 最大子数组和 60 次
5 LeetCode 215 第K个最大元素 60 次
6 LeetCode 300 最长递增子序列 44 次
7 LeetCode 206 反转链表 41 次
8 LeetCode 20 有效的括号 41 次
9 LeetCode 415 字符串相加 36 次
10 LeetCode 21 合并两个有序链表 30 次

三周刷题计划

第一周:TOP10 + 每个分类最高频那道

  • TOP10 全部做到闭眼写的程度
  • 每个分类的第 1 名必须拿下(LRU / 排序数组 / LC3 / 反转链表 / LIS / 层序遍历)
  • 重点练习手写快排的 partition 函数

第二周:补齐 6 大分类,重点练链表和 DP

  • 链表 10 道全部过一遍,重点练反转系列(LC 206 + LC 25)
  • DP 8 道按难度递进:爬楼梯 → 买卖股票 → LIS → 零钱兑换 → 编辑距离
  • 练 2-3 道原创场景题,培养场景到算法的抽象能力
  • 每道至少手写两遍

第三周:全量复盘 + 练 ACM 模式

  • 50 道全部做完,查漏补缺
  • 每道至少做两遍,确保 15 分钟内 bug-free
  • 用 ACM 模式输入输出写完整程序(腾讯以 ACM 模式为主)

腾讯手撕 = ACM 模式

腾讯面试手撕同样以 ACM 模式为主——需要自己处理输入输出,不是 LeetCode 那种只写核心代码的模式。

很多人算法会写,但栽在 ACM 模式上。平时练习务必用 ACM 模式!

本站所有题解均采用 ACM 模式(标准输入输出),可直接作为面试手撕的练习素材。