📜  微软面试经历|第 164 组(在校实习)

📅  最后修改于: 2021-11-10 06:37:00             🧑  作者: Mango

我几乎在第三年开始时就选择了 Microsoft 的校园实习面试。以下是面试经历。

致任何正在阅读本文的人。非常感谢您来到这里,我希望这会有所帮助!

第 0 轮:

    这一轮是在 Cocubes 平台上在线进行的。我们只需要填写 Google 表格即可参与,我认为 CGPA 的截止值为 7 左右。

    无论如何,说到这一轮,据我所知,有 3 个编程问题和近 1500 名参与者。这些问题是基本的。我被问到的三个问题如下:

  1. 这是一个非常基本的字符串相关问题,我们必须找到给定二进制中连续 1 的最长序列号。
  2. 这是一个基于树的问题,它被赋予一棵树和一个总和,并且必须找到最短的子树,包括其总和等于给定总和的根节点。
  3. 我不太记得第三个问题,但它也是一个简单的基于树的问题。

    分配的时间是90分钟。

    从这一轮中选出了 40 人,我通过了,因为我已经解决了所有三个问题。

第1轮:

    这一轮实际上是由微软的人在大约一周后进行的。
  1. 我们收到了一个与 2 路链表相关的问题,我们必须以优化的方式编写插入和删除的代码,以便链表保持排序并保持尽可能低的高度。

    我很难在给定的 30 分钟内编写完整的代码,但这并不重要。他们只是在检查你的方法。

    有些评估人员必须向他们解释代码,他们确实试图让我感到不安,但如果你对自己的方法有信心,你会做得很好。

    从那轮比赛中选出了近 20 人,我通过了。

第二轮:

    这是第一次 P2P 面试,面试官问了我一个关于二叉树的问题。
  1. 他们让我在二叉搜索树中找到第 k 个最大的元素。常见的方法是找到中序,然后从最后一个元素中选择第 k 个元素,但我已经使用递归解决了它。面试官印象很深。
  2. 在那之后,他让我找到著名的 RGB 问题的 O(n) 解决方案。最初我无法解决它,但在面试官的轻微帮助下我能够做到。

    然后他问了我一些关于操作系统的基本问题,我回答了其中的 75%。

    最重要的是告诉他们你不知道你是否对问题的答案不流利。这比假装知道答案要好。

    所有人都被选中参加第二轮P2P。

第 3 轮:

  1. 在这一轮中,我被要求提供一个 IP 地址,我必须检查它是否是有效的 IPV4。

    我个人用Java编码。所以我已经使用异常处理处理了所有情况。面试官似乎印象深刻。

    第三轮选拔了几人。

第 4 轮:

  1. 这是最后一轮。面试官对我真的很友好。他问了我几个关于流水线的问题,然后他让我为以下问题编写代码:

    如果有以下形式的日志文件:一个人 ‘A’ 在时间 ‘T’ 访问页面 ‘P’,我必须找到任何人在访问页面 ‘P1’ 后访问页面 ‘P2’ 的次数

    我为此提供了一个 O(n) 解决方案,即通过散列一个人的所有访问日志的列表,该人的 ID 发生在线性时间。之后,在每个列表中,我们需要在页面 ‘P1’ 之后找到页面 ‘P2’ 的条目。

    键:人员 ID

    值:该人的 ArrayList

    我真的很喜欢写那段代码。 😉

    面试官喜欢我的方法并祝贺我。

差不多就是这样。第二天,我收到一封来自 Microsoft 的邮件,说我和其他 3 位大学同学一起被选为实习生。

我的看法和建议:

我首先要感谢 GeeksForGeeks,因为我欠他们很多。我曾经几乎一直在练习 GFG 的编码问题。说真的,你们是最棒的。我曾经从 GFG 那里读过一些面试经验,这对我制定面试方法有很大帮助。

他们希望你在采访中大声思考。不要只写代码,而要先和面试官谈谈你的方法,然后再继续。在所有阶段与面试官讨论代码。

最后,练习大量问题并保持您的概念清晰。

最重要的话题:

几乎所有的主题都应该学习,但我个人觉得二叉树、动态规划和基本算法是最重要的一开始要学习的东西。然后你可以去图表。

此外,您必须学习递归,这是非常明显的,因为没有递归就无法解决与树相关的问题。

我期待着将于 2018 年 5 月开始的实习。一旦我完成了实习,我将写另一篇关于我的实习经历的文章。

最后,如果您想为面试练习编程,GEEKS FOR GEEKS 是您想要与之交谈的人。 😉

微软的所有练习题!