📜  微软实习面试经历| 2021 年校内

📅  最后修改于: 2021-11-16 07:29:06             🧑  作者: Mango

第 1 轮(在线编码测试):第 1 轮是在 Codility 上进行的在线编码测试。它有两个编码问题,如下所示:

  1. 第一个问题是一个基于掷骰子的简单问题。您将获得掷骰子的总数T和要实现的总和TotalSum 。这些T卷中的K 个已执行,总和为CurrentSum 。您的目标是返回剩余卷的值,使您的净总和为TotalSum
  2. 第二个问题类似于 https://www.geeksforgeeks.org/count-minimum-number-of-fountains-to-be-activated-to-cover-the-entire-garden/。

约40名学生入围了面对面的面试。所有的回合主要是基于 DSA。

第 2 轮(编码面试):第 2 轮是 45 分钟的编码面试,有两个编码问题。在编写我的解决方案之前,我必须首先解释我的方法。问题如下:

  1. https://www.geeksforgeeks.org/diameter-of-a-binary-tree/。我能够编写出最佳解决方案。我们讨论了可能的测试用例,面试官对我的回答很满意。
  2. 给定字符串字母,找出其中第 K 个最小的字典字符。我讨论了排序方法,然后使用 Hashmaps 解释了我的 O(n) 解决方案。他问了我一个后续问题,以找出各个 L 和 R 位置之间的第 K 个最小字符。预期的解决方案是在 O(n) 和 O(1) 中进行预处理,以获取每个 L、R 对的解决方案。 (由于时间不足,我无法编写此解决方案。)

大约有 30 人进入了下一轮的候选名单。

第 3 轮(编码面试):第 3 轮是类似于第 2 轮的编码面试。

  1. https://www.geeksforgeeks.org/search-element-sorted-matrix/。我能够实现并编码出我的二进制搜索解决方案。
  2. https://leetcode.com/problems/regular-expression-matching/。我讨论了我的 DP 解决方案并解释了各种测试用例的方法。 (由于时间限制,没有对此解决方案进行编码。)

大约有 20 人进入了下一轮的候选名单。

第 4 轮(人力资源和技术面试):面试开始时简要讨论了我的项目和面临的挑战。

  • 有人问我一个关于操作系统的问题,我尝试过,但告诉他我还没有学过。然后他让我设计一个电话记录,给出电话号码和他们的时间戳。特点是: 添加一个新的呼叫细节;检索过去 Y 小时内前 X 个最频繁的呼叫。
  • 我没有太多想法并提出了一个解决方案,但它并不是非常理想。这次面试只是为了判断你的想法和你处理复杂问题的方法。

4小时后公布结果,16人被选入微软暑期实习。

判决:选择

一些准备技巧:

  1. 熟悉每个概念并确保您编写解决方案而不只是阅读它。
  2. 在 GeeksforGeeks 和 Interviewbit 等平台上查看基于公司的问题,并在查看解决方案之前尝试解决这些问题。
  3. 结合使用 Leetcode、GeeksforGeeks、Hackerrank 等资源,并设置 30-45 分钟的时间限制来解决每个问题。
  4. 在你的简历上有一些好的编码项目,并确保你能正确解释你对它的贡献。
  5. 试着继续和你的面试官交谈,清楚地解释你的思考过程。
  6. 面试前和面试过程中保持冷静。

所有最好和快乐的编码!