Interview AiBoxInterview AiBox 实时 AI 助手,让你自信应答每一场面试
大厂手撕算法轮:2026 白板编程生存指南
手撕代码是大厂面试最令人恐惧的环节。完整生存指南,覆盖面试官真正评分的维度、6 阶段执行框架,以及 4 个无声杀手。
- sell面试技巧
- sellAI 洞察
手撕算法轮不是考你能不能写代码。它考的是你能不能在面试官注视每个按键的情况下,出声思考、应对压力、并产出正确解法。
如果你把手撕轮当成 LeetCode 提交,即使答案正确也会挂。如果你把它当成展示工程思维的表演,即使解法不够最优也能过。
面试官真正评分的 5 个维度
大多数候选人以为评分标准是:
输出正确 → 过
输出错误 → 挂真正的评分有 5 个维度:
| 维度 | 权重 | 看什么 |
|---|---|---|
| 思路质量 | 30% | 编码前是否讨论了多种思路?是否选了正确的? |
| 沟通 | 25% | 面试官能跟上你的思考吗?编码时是否解释? |
| 正确性 | 20% | 解法是否正确?是否处理了边界条件? |
| 复杂度分析 | 15% | 能否论证时间和空间?能否讨论权衡? |
| 代码质量 | 10% | 代码可读吗?变量名清晰吗?结构合理吗? |
注意正确性只占 20%。零沟通的正确解法得分低于有优秀过程的稍次优解法。
6 阶段执行框架
每场手撕轮都应该遵循这个结构。跳过阶段是最常见的失败模式。
阶段 1:澄清(30-60 秒)
用自己的话复述问题。问约束和假设。
"所以需要在数组中找出出现频率最高的 k 个元素。
数组有序吗?元素可以是负数吗?
如果 k 大于不同元素的个数,返回什么?"这做了两件事:确认你理解了问题,并在不沉默的情况下争取思考时间。
阶段 2:思路(60-90 秒)
编码前讨论至少两种思路。说出权衡。
"我看到两种思路。
暴力:用哈希表计数,然后按频率排序。O(n log n) 时间,O(n) 空间。
优化:用大小为 k 的最小堆代替排序。O(n log k) 时间,O(k) 空间。
我选最小堆,因为 k 通常远小于 n。"这展示你理解设计空间,而不只是一个解法。
阶段 3:边界条件(30 秒)
编码前列出边界条件。这是最被低估的阶段。
"需要处理的边界:
- 空数组 → 返回空列表
- k 等于不同元素个数 → 返回全部
- 所有元素相同 → 返回那一个元素"阶段 4:编码(5-15 分钟)
边写边说。讲述你在做什么。
"先建频率表...
然后维护一个大小为 k 的最小堆...
对每个条目,如果堆大小 < k 就推入。否则如果频率 > 堆顶就替换..."卡住了就说卡在哪里。不要沉默。
"我需要想一下这里怎么高效更新堆...
实际上 Python 的 heapq 不支持任意删除,
所以我换个思路..."阶段 5:验证(2-3 分钟)
用小例子走一遍你的解法。出声走。
"用 array = [1,1,1,2,2,3], k = 2 验证。
频率表:{1:3, 2:2, 3:1}
处理 (1,3):堆 = [(3,1)]
处理 (2,2):堆 = [(2,2), (3,1)] 大小 = k
处理 (3,1):1 < 2,跳过
结果:[1, 2] ✓"这能抓 bug,也展示严谨性。
阶段 6:优化与讨论(1-2 分钟)
正确性确认后,讨论改进。
"时间复杂度 O(n log k),n 个元素,堆大小 k。
空间 O(k) 堆 + O(n) 频率表。
如果需要支持动态更新,需要不同的数据结构。
另一种方案是桶排序,如果频率范围有界——O(n) 时间。"4 个无声杀手
这些行为即使代码正确也会淘汰候选人。
杀手 1:沉默
你停止说话的那一刻,面试官停止评分。他们无法评估看不见的思考。
表现:"让我想想..."然后 5 分钟以上沉默。
修复:叙述一切。思考就说在想什么。卡了就说卡在哪里。即使"我在考虑这里用哈希表还是双指针"也给面试官信号。
杀手 2:不讨论思路直接写代码
听完问题就打字,说明你要么在猜要么背了答案。
表现:听完问题立即打字。
修复:永远先花 60-90 秒讨论思路。即使解法对你显而易见,面试官需要看到你的推理。
杀手 3:忽略追问
面试官问"能优化吗?"或"边界条件呢?"是在给你展示深度的机会。敷衍这些是强负信号。
表现:"我觉得已经最优了"不给理由。"边界应该没问题"不列出来。
修复:把每个追问当机会,不是打断。明确讨论权衡。展示你理解为什么解法好,不只是它能跑。
杀手 4:发现 bug 慌慌
面试中发现 bug 是正常的。你怎么处理决定结果。
表现:全部擦掉重写。或者冻结盯着屏幕。
修复:发现 bug 时叙述调试过程。"这里有问题——输入为空时这行会抛索引错误。我在顶部加个守卫子句。"受控的调试展示工程成熟度。
各厂出题模式差异
字节跳动:优化追问
字节面试官几乎总会在你第一版解法后要求优化。准备:
- "能把空间复杂度降下来吗?"
- "如果需要支持区间查询呢?"
- "能一趟扫描解决吗?"
每道题练习时都准备第二套思路。
腾讯:实现精度
腾讯偏爱仔细实现比巧妙优化更重要的题。常见陷阱:
- 数组操作中的差一错误
- 树问题缺少空指针检查
- 双指针问题循环边界不正确
练习在提交前用小例子走一遍代码。
阿里巴巴:正确性优先
阿里面试官更接受正确的 O(n²) 而非有 bug 的 O(n)。如果不确定最优思路,先正确实现暴力,再讨论优化。
蚂蚁集团:限时难题
蚂蚁以业内最难算法轮著称。预期:
- Hard 难度题目,20-25 分钟时限
- 需要非标准数据结构(线段树、稀疏表)的题
- 改变问题约束的多轮追问
如果目标是蚂蚁,准备量扩展到 150-200 题,包含 hard 模式。
真正有效的练习协议
纯刷量(不做复盘做 300+ 题)产生虚假自信。这个协议产生真本事。
每道题做完后:
- 模式总结:一句话说出模式名和为什么适用
- 边界条件日志:踩到的边界条件(如果有)
- 复杂度论证:写出时间/空间分析及理由,不只是答案
- 替代思路:说出另一种思路和什么时候它更好
- 重做计划:如果做错了或需要提示,3 天后不看答案重做
每周复盘:
- 不看提示重做上周 5-10 道题
- 找出仍然薄弱的模式,加 2-3 道同类题
- 做一次完整限时模拟面试
Interview AiBox 如何帮助
- 限时练习:模拟真实手撕条件,共享编辑器 + 时间压力
- 追问生成:解完后 AI 生成优化问题和约束变化
- 沟通辅导:练习出声思考,获取叙述是否可跟随的反馈
- 各厂模拟:按字节、腾讯、阿里、蚂蚁的模式匹配练习
FAQ
需要做多少题才算准备好?
大多数大厂 80-100 道覆盖 8 大核心模式并认真复盘就够了。蚂蚁扩展到 150-200 道包含 hard 模式。复盘质量比题量重要。
用什么语言?
用你最熟练的语言。Python 白板写得最快。Go 和 Java 更冗长但可接受。基础架构岗预期 C++。永远不要为了短而用你不舒服的语言。
面试官看起来不耐烦怎么办?
保持冷静,遵循框架。有些面试官风格冷淡——这不代表你做得差。因为面试官不耐烦就加速编码通常结果更差。坚持你的流程。
可以向面试官要提示吗?
可以,但要策略性。讨论完思路并尝试 1-2 分钟后,问"我在考虑 X 但不确定 Y——有提示吗?"没问题。听完问题立即问是负信号。
下一步
- 阅读算法面试陷阱题指南避免正确但挂掉的模式
- 查看 2026 仍然重要的 LeetCode 模式做模式聚焦准备
- 练习编程面试出声思考指南
- 下载 Interview AiBox用 AI 追问练习手撕轮
Interview AiBoxInterview AiBox — 面试搭档
不只是准备,更是实时陪练
Interview AiBox 在面试过程中提供实时屏幕提示、AI 模拟面试和智能复盘,让你每一次回答都更有信心。
AI 助读
一键发送到常用 AI
智能总结
深度解读
考点定位
思路启发
分享文章
复制链接,或一键分享到常用平台