微软SDE面试真题首次公开:三轮完整经历+真题全解析 – 一亩三分地

29次阅读
没有评论

最近微软家的面试明显又多起来了。微软的风格一向是“面试内容看组而定”,不同团队出的题差异真的很大。这次我的三轮都是 简历深挖 + Coding,没有系统设计 / 没有纯聊天轮,但这些在微软面试里都不算罕见,只是我这次没遇到。

第一轮:项目深挖 + Coding(Stack → Queue)

第一轮的面试官看上去像是组里的 TL,上来先从我的项目开始问,问的点比较细,包括技术选型、具体实现、为什么这样设计等等。聊完之后,他简单介绍了一下组里在做什么,然后就进入 coding。

真题 1:用只有 Stack 的语言实现 Queue 功能

Imagine you’re working on a language which only supports Stack,
but you need Queue functionality to fulfill the requirement.

这题本质是考“如何用两个栈模拟队列”,属于非常常见的基础题。

考点主要是:

  • 入队 / 出队逻辑
  • lazy transfer 的思路
  • 能不能解释清楚为什么摊还复杂度是 O(1)

氛围挺正常,不紧张。

第二轮:几乎不问简历,直接 coding(JavaScript 类型比较)

第二轮是一位印度姐姐,迟到了一点点,基本没怎么问简历,自我介绍之后就直接 coding。

真题 2:JavaScript equality / coercion 题

给定:

const a = 1;
const b = "1";

问以下表达式的输出:

a == b
a === b
!a === !b
a + b
a + +b

这一轮更偏语言基础理解,你答不答对其实不是重点,重点在于你能不能说清楚:

  • == 和 === 的差别
  • unary + 的作用
  • type coercion 是怎么发生的
  • truthy / falsy 的判断

属于微软常见的“语言理解 + 推理能力”类问题。


⭐ 第三轮:轻量 BQ + Coding(链表合并题)

第三轮的面试官是一位 senior,看起来比较有经验。开场问了两个轻量的行为题,算是热身,然后马上进入 coding。


🧩 真题 3:合并一个升序链表和一个降序链表,输出升序

题意如下:

  • L1:升序
  • L2:降序
  • 把它们合并成一个整体的升序链表
  • 时间复杂度 O(M+N),空间 O(1)

示例:
L1: 1 → 2 → 3
L2: 6 → 5 → 4
输出:1 → 2 → 3 → 4 → 5 → 6

这一轮考的是链表指针操作的熟练度。
思路其实很清晰:

  1. 先把降序链表 原地反转
  2. 然后按 merge sort 的 merge 方法合并两个有序链表
  3. 全程不能用额外空间,只能用指针操作

这轮节奏比较快,面试官更关注你思考过程有没有卡住。


如果你想找我辅助面试,或者用面试中的原题 mock,感受最真实的 feedback,欢迎戳我。只放真实面经。

VOprep 团队长期陪同学员实战各类大厂 OA 与 VO,包括 Google、Amazon、Citadel、SIG 等,提供实时答案助攻、远程陪练与面试节奏提醒,帮助大家在关键时刻不卡壳。
如果你也在准备公司,可以了解一下我们的定制助攻方案——从编程面到系统设计,全程护航上岸。

正文完
 0