📌  相关文章
📜  微软软件工程师面试经验 |校园 2019

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

微软软件工程师面试经验 |校园 2019

这是一次校园招聘。
有五轮

第 1 轮:2019 年 5 月 11 日在线评估
共有三个编码问题。

  1. 这是船舶分层航行的问题。
    • 每艘船都有一个值 n。
    • 每艘船后面都有 (n * n + 1) % M 不同的船,其值为 0 到 (n * n + 1) % M – 1
    • 给出的输入是 L 号。层数和 M

以 M 为模求所有层中的船舶总数。

  1. 需要从给定的 n 个坐标返回任意两个坐标之间的最大距离。使用欧几里得方法计算距离
  2. 生成字符串回文的最小交换

我可以解决所有三个问题。

第 2 轮:2019 年 11 月 30 日团体飞行
在这一轮中,6-8 名学生被分配到一个小组成员中,给了我们两个问题。我们需要讨论我们的方法,然后将代码写在纸上。

  1. 找到给定二叉树的最左边的表亲
    例如:
    A
           /   \
          B     C
         / \   /  \
        D   E F    G
    

所以D的最左边最右边的堂兄是F,E是F,F是NULL,G是NULL

  1. 给定一个单词列表,返回那些包含其他单词作为其前缀的单词。
    例如:[“a”、“after”、“afterwords”、“b”、“be”、“before”]
    输出:[“后记”,“之前”]

我可以解决这两个代码并用适当的注释将其干净地写在纸上。

接下来的三轮 F2F 面试发生在 1/12/19
共 3 轮耗时 2.5 小时

第三轮:F2F面试
面试官非常好,帮助我冷静下来。然后问我两个链表的交集问题。我解释了两种方法,然后在纸上写了代码。

第四轮:F2F面试
面试官问了我两个问题:

  1. 蛇和梯子
  2. 给定一个边列表 E 和顶点对列表 V。检查我们是否可以使用 E 中的边创建一个图,使得 V 中的顶点对不相连。考虑直接和间接连接。

对于这两个问题,我给出了两到三种方法。面试官让我写第二题的代码,当我写了一半的时候,他说时间到了。

第三轮:F2F面试
问了我一个问题:合并两个排序列表
可以有重复,但最终列表应该是不同的。即每个副本应该被取一次。
面试官要求我提供至少三种方法。要求我为我能回答的三种方法中的两种方法编写代码。我给出了一种递归方法,一种我们采用额外的头指针的方法,另一种方法是我将第一个链接列表的节点插入到第二个中 - 编码的第一个两个方法。

等了 5 分钟后,HR 通知我他们正在给我报价。