📜  微软 SDE-1 面试体验(校外)

📅  最后修改于: 2022-05-13 01:58:30.913000             🧑  作者: Mango

微软 SDE-1 面试体验(校外)

第 1 轮(在线评估轮)– 2 个编码问题必须在 90 分钟内解决。测试的平台是 codility。请记住,在 codility 平台系统的测试用例是隐藏的。您可以针对您的测试用例测试代码。

  • 在一个计划上给出了 N 个点(从 0 到 N-1 编号)。第 k 个点在坐标 (X[k], Y[k]) 处,该点的标签是 S[k]。我们想要做一个圆心在 (0,0) 的圆。圆圈不应有两个具有相同标签的点。圆内的最大可能点数是多少?
  • 给定一棵有 N 个节点的树,编号从 0 到 N-1。每个节点只能包含字母“a”或“b”之一。长度为 N 的数组 A 用于表示树。 A[k](对于 K 从 0 到 N-1)表示第 k 个节点的父节点。字母表示为字符串S[k]。您需要找到树中最长路径上的顶点数,这样路径上的任何相邻顶点都不会包含相同的字母。

幸运的是,我可以运行这两个代码。几天后,我收到了一封邮件,我被选中进行进一步的面试。

面试流程:共面试3次。

面试第一轮(技术面试):她自我介绍,让我自我介绍。然后她直接转向数据结构。她问了我两个问题——

  1. 给定一棵树(具有左、右和前一个指针),您需要填充每个前一个指针以指向其前一个左节点。如果没有前一个左节点,前一个指针应该设置为NULL。
  2. 矩阵的螺旋打印。

最后,她问我是否有任何问题。我请她分享她的经验以及她目前正在与之合作的团队。

一周后,我接到电话说我入围了下一轮。

面试第二轮(技术面试):他介绍了自己。然后,他问了我一些关于我的项目的问题(大约 5-10 分钟)。

然后他问我是否乐于解决多线程问题。我告诉他我还没有学过多线程这门学科。因此,他转向有关数据结构的问题:

  • 打印字符串的所有可能排列。然后他让我修改我的代码,以便没有重复。
  • 打印字符串的所有子序列。

由于我们还有一些时间,他问了另一个问题。这是一个日程安排问题。他只想知道哪种数据结构最适合这种情况。我告诉了优先队列,他似乎很满意。我不记得确切的问题。

幸运的是,我被选中进入下一轮和最后一轮。

第 3 轮面试(最终 AA 轮): AA 代表“酌情”。这一轮是技术和管理问题的混合体。

他开始采访有关时间复杂度空间复杂度定义的问题。

  • 最佳时间复杂度是多少?
  • 最佳空间复杂度是多少?

然后他给了我一个编码问题。

  • 沿环形路线有 n 个加油站,第 i 个加油站的加油量为 gas[i]。从车站到下一个 (i + 1) 车站要花费成本 [i] 的汽油。给定气体和成本的两个整数数组,如果您可以用足够的气体沿顺时针方向绕电路一圈,则返回起始加油站的索引,否则返回-1。他想要一个 O(n) 的方法。
  • 然后他问了我一些关于我的项目的问题,比如为什么是MongoDB ?它的优点。
  • 他继续询问我喜欢的任何产品,例如 Alexa、Google Home 等。我说谷歌主页。然后他问了一些问题,比如它如何知道将输入作为语音执行什么操作。
  • 为什么选择微软?

我的采访提前 15 分钟结束。

最终判决:一周后,我收到了一封邮件,我被选中担任全职软件工程师职位。

建议:

  • 与面试官沟通好。
  • 说实话。如果你不擅长任何主题,首先要非常清楚。
  • 向面试官表示愿意接受这个机会。
  • 继续编码。

我希望你喜欢阅读这篇文章。祝学习愉快,万事如意!