微软采访 |设置 31(校内)
最近微软来参观我们的校园,提供 SDE 职位。以下是我的面试经历。
在线回合:这些是由 CoCubes 组织的。
第 1 轮 – 有 15 个简单的 MCQ。其中大部分来自 GeeksQuiz。大部分学生通过了这一轮。
第 2 轮 - 有 2 个编码问题
- 给定随机索引中可能包含 NULL 的已排序字符串列表,返回给定搜索字符串的位置。如果字符串不存在,则返回 -1。
例如:“at”, “bat”,””,””,”car”,””,””,””,”dog” ... 找到“car”。 o/p: 4
我最初尝试了修改后的二进制搜索,但出了点问题,所以做了一个简单的线性搜索。我的坏😛 - 给定一个整数数组,其中所有元素都出现奇数次,除了 3 个元素出现偶数次,找到这 3 个元素。
类似文章:GeeksforGeeks 链接
他们将 39 名学生列入小组飞行赛的候选名单。
团体飞轮:
- 学生被分成 3 人或 4 人一组,并被指派一名导师。每个人都被问到同样的问题,并希望尽可能地编写带有注释的清晰整洁的 C/C++ 代码。
- 问题是一维数组包含 N*N 个元素。假设 N*N 个元素形成一个矩阵,您必须就地旋转矩阵。
从这一轮中选出了16名学生进行个人面试。
F2F : 第 1 轮 – 30 分钟最多
- 什么是你最喜欢的主题 ?
– 面向对象 - OOP 的基本方面是什么?
– 多态性,封装,等等等等 - 向外行解释多态性
- 更多的废话 - 它是如何以及何时实施的?
- 运行时间和编译时间,通过重载和覆盖 - 他让我为每个人编写示例代码,我照做了。
- 给定一个有循环的链表,你如何检测循环。 ?
– Floyd 的循环检测算法
他让我写代码。他很高兴;我已经检查了所有角落案例。 - 计算二叉树中完整节点的数量。完整节点是具有非空左右子节点的节点。
– 我给出了一个非常简单的递归解决方案。他要求我使用不同的遍历迭代地进行。所以我做了一个水平顺序遍历。
他让我提供各种角落案例。他很高兴。 - 你实现了线程库吗??
– 在Java和 C++ 中是 - 线程和进程的区别??
——呸呸呸。
F2F : 第 2 轮 – 45 分钟
- 面试官很认真,直接进入编码问题
- 给定一个包含元素的数组,其中除了两个元素之外所有元素都有偶数出现,找到这些元素。
– 我给了他 xor 方法,你必须找到最右边的设置位,然后分成两组。他等着,直接去bit表示,即Little Endian和Small Endian。
跟进:检查给定的机器架构是 Little Endian 还是 Small Endian。 - 给定两个字符串,在第一个字符串中找到包含第二个字符串所有元素的最小长度窗口。
- 做得很快。他不断调整问题并要求我对代码进行必要的更改。最后他让我给出一些好的测试用例。
F2F:第 3 轮 - 45 分钟
- 这是我与 AA 经理的最后一轮。
- 他首先问我关于我惨淡的CGPA:3
然后我们讨论了一些关于我的项目。 - 他问我关于信号量的问题,我们就信号量的类型进行了一些讨论。
- 然后他让我写 Signal() 和 Wait() 函数。
- 最后他让我在临界区实现互斥。我给出了彼得森算法。
他继续前进
- 给定一个元素数组,排列元素,使奇数元素位于奇数位置,偶数元素位于偶数位置。
– 我给了他一个两次通过的方法,我先隔离然后相应地分开。但他问的是一次性解决方案。这是我的运气用完的时候。我知道这很容易,但搞砸了。这家伙也很固执,因为即使经过 15 分钟的反复试验,他还是要我继续。
虽然我没有得到这份工作,但能接受这样有经验的业内人士的采访是一次很棒的经历。
我认为值得一提的几点——
* 考虑负载,让面试官知道你对这件事有实际的深度
* 如果您不确定,请始终询问有关问题的问题
* 在开始编写代码之前,请始终考虑极端情况和不常见的测试用例
此外,非常感谢整个 GFG 团队的不懈努力🙂 Keep Coding, Keep Rocking。
微软的所有练习题!