📜  微软采访 |设置 31(校内)

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

微软采访 |设置 31(校内)

最近微软来参观我们的校园,提供 SDE 职位。以下是我的面试经历。

在线回合:这些是由 CoCubes 组织的。

第 1 轮 – 有 15 个简单的 MCQ。其中大部分来自 GeeksQuiz。大部分学生通过了这一轮。

第 2 轮 - 有 2 个编码问题

  1. 给定随机索引中可能包含 NULL 的已排序字符串列表,返回给定搜索字符串的位置。如果字符串不存在,则返回 -1。
    例如:“at”, “bat”,””,””,”car”,””,””,””,”dog” ... 找到“car”。 o/p: 4
    我最初尝试了修改后的二进制搜索,但出了点问题,所以做了一个简单的线性搜索。我的坏😛
  2. 给定一个整数数组,其中所有元素都出现奇数次,除了 3 个元素出现偶数次,找到这 3 个元素。
    类似文章:GeeksforGeeks 链接

他们将 39 名学生列入小组飞行赛的候选名单。

团体飞轮:

    学生被分成 3 人或 4 人一组,并被指派一名导师。每个人都被问到同样的问题,并希望尽可能地编写带有注释的清晰整洁的 C/C++ 代码。
  1. 问题是一维数组包含 N*N 个元素。假设 N*N 个元素形成一个矩阵,您必须就地旋转矩阵。

    从这一轮中选出了16名学生进行个人面试。

F2F : 第 1 轮 – 30 分钟最多

  1. 什么是你最喜欢的主题 ?
    – 面向对象
  2. OOP 的基本方面是什么?
    – 多态性,封装,等等等等
  3. 向外行解释多态性
    - 更多的废话
  4. 它是如何以及何时实施的?
    - 运行时间和编译时间,通过重载和覆盖
  5. 他让我为每个人编写示例代码,我照做了。
  6. 给定一个有循环的链表,你如何检测循环。 ?
    – Floyd 的循环检测算法
    他让我写代码。他很高兴;我已经检查了所有角落案例。
  7. 计算二叉树中完整节点的数量。完整节点是具有非空左右子节点的节点。
    – 我给出了一个非常简单的递归解决方案。他要求我使用不同的遍历迭代地进行。所以我做了一个水平顺序遍历。
    他让我提供各种角落案例。他很高兴。
  8. 你实现了线程库吗??
    – 在Java和 C++ 中是
  9. 线程和进程的区别??
    ——呸呸呸。

F2F : 第 2 轮 – 45 分钟

    面试官很认真,直接进入编码问题
  1. 给定一个包含元素的数组,其中除了两个元素之外所有元素都有偶数出现,找到这些元素。
    – 我给了他 xor 方法,你必须找到最右边的设置位,然后分成两组。他等着,直接去bit表示,即Little Endian和Small Endian。
    跟进:检查给定的机器架构是 Little Endian 还是 Small Endian。
  2. 给定两个字符串,在第一个字符串中找到包含第二个字符串所有元素的最小长度窗口。
    - 做得很快。他不断调整问题并要求我对代码进行必要的更改。最后他让我给出一些好的测试用例。

F2F:第 3 轮 - 45 分钟

    这是我与 AA 经理的最后一轮。
  1. 他首先问我关于我惨淡的CGPA:3
    然后我们讨论了一些关于我的项目。
  2. 他问我关于信号量的问题,我们就信号量的类型进行了一些讨论。
  3. 然后他让我写 Signal() 和 Wait() 函数。
  4. 最后他让我在临界区实现互斥。我给出了彼得森算法。

    他继续前进

  5. 给定一个元素数组,排列元素,使奇数元素位于奇数位置,偶数元素位于偶数位置。
    – 我给了他一个两次通过的方法,我先隔离然后相应地分开。但他问的是一次性解决方案。这是我的运气用完的时候。我知道这很容易,但搞砸了。这家伙也很固执,因为即使经过 15 分钟的反复试验,他还是要我继续。

虽然我没有得到这份工作,但能接受这样有经验的业内人士的采访是一次很棒的经历。
我认为值得一提的几点——

* 考虑负载,让面试官知道你对这件事有实际的深度
* 如果您不确定,请始终询问有关问题的问题
* 在开始编写代码之前,请始终考虑极端情况和不常见的测试用例

此外,非常感谢整个 GFG 团队的不懈努力🙂 Keep Coding, Keep Rocking。

微软的所有练习题!