📜  微软面试经历|设置 118(IDC 校园内)

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

微软面试经历|设置 118(IDC 校园内)

大约 100 人申请了第一轮微软实习offer。基本标准是 CGPA 大于 7.00。

第1轮:
给了每个人三个问题。第一个权重为 5 分,其余两个权重为 10 分。 Cocubes 进行了这一轮。 5天后公布结果。


问题 1:
给定一个整数数组,您必须在 [2-250] 范围内为数组中的所有元素找到最远的互质数。

示例:[2,5,6] 答案应该是 [249,249,247]
[5,57,8] 答案应该是 [249,2,249] //因为最远。

span style="font-family: Times New Roman,serif;">问题 2:



给定一个链表,其中每个节点都有两个数据值和一个下一个指针。你必须找到一些趋势。当相邻节点的斜率不匹配时,就会出现趋势。

还给出了斜率公式:(y2-y1)/ (x2-x1)

示例:1,2 -> 2,3 -> 3,2 -> 4,1 ->

现在前两个节点的斜率是 (3-2)/(2-1) 即第一个和第二个节点

现在第二个节点和第三个节点的斜率是 (2-3)/(3-2) 不相等所以出现了趋势。

继续像第三个和第四个节点之间的斜率是 (1-2)/(4-3),它等于前一个斜率,因此没有趋势。继续查看剩余的列表。

最后,给定链表的趋势数就是答案。

问题 3:



给定两棵二叉树,找到第二棵树是第一棵树的子树,如果是,则返回第二棵树中的节点数,否则返回-1。

下一轮的选择是基于 cgpa 和解决的问题数量。

大约 40 人被选入第二轮。幸运的是我通过了这一轮,因为我只做了一个问题(10 分)完全正确,剩下两个部分正确,但我的 CGPA(9.33)很好。



第二轮(团体飞行):

给定两个链表,每个链表代表一个数字,您必须将这两个链表相加并返回第三个列表作为结果。他们实际上看到了我们如何解决问题、我们如何处理所有测试用例以及我们编写代码的方式。

12人被选入下一轮。


第 3 轮(技术 F2F):

面试官是个很酷的人。我正式自我介绍。第一个是技术问题。他画了一棵树,问我你会怎么做层序遍历。我说我会使用队列。然后他给出了类似这样的问题“Zig-Zag level order traversal”

https://www.geeksforgeeks.org/level-order-traversal-in-spiral-form/



我先告诉了我的方法,然后他让我为我的方法编写代码。我花了大约五分钟来完成代码。然后他让我对所有边缘情况进行一些测试。他对我的做法很满意。

然后他转到了 OS。关于如何实现分页以及分页的缺点是什么。采访持续了1个多小时。(更多关于OS)

在五分钟内宣布结果,我必须在另外 5 分钟内参加第二个 F2F。

第 4 轮(技术 F2F):

像往常一样,我向面试官介绍了自己。第一个问题是给树打印树的最后一层最左边的节点。我说我会找到树的高度,然后做层序遍历打印树中的第一个节点。他说他想要单次遍历的答案。思索了一阵子后,我想出了一个解决方案。他对此很满意。

第二个问题是反转链表中的每 k 个节点。他让我写代码。我用测试用例在五分钟内编写了代码。我在我写的代码上运行了几个测试用例。然后他问我如何实现facebook的newsfeed?然后我们讨论了这个话题大约 20 分钟。

这次采访结束后,我被要求在外面等。我被告知明天有最后一轮。

决赛(F2F):



他真的很酷(我在实习期间认识了他)。首先,他在谈论我的项目。他问我,如果给你机会改进你的项目,你会怎么做?我们谈论了这个项目大约 25 分钟。然后他给出了一个“C”代码并让我为它编写测试用例。他给了我用 C 语言实现的 itoa()函数。我说这个函数不适用于 n=0 并且它会返回 null。此外,存储和返回答案的结果字符缓冲区被声明为函数的本地。我指出了这两个错误。之后他问你有什么问题吗?我问他我应该在哪些方面改进?他说你应该专注于设计部分,其他一切都好。



结果 :

四小时后公布结果。四个成功了,我就是其中之一!

准备小贴士:

真的,我要感谢极客们,因为极客们以如此有组织的方式保持内容。定期参加竞争性编程。(spoj、codechef、codeforces)。在面试的任何阶段都要自信。好好享受面试的过程吧。