微软面试经历 | (校内实习)
微软几天前(2019 年 7 月 15 日)来到我们的校园,为刚完成 B.Tech 第二年的学生提供暑期实习。 CPI(累积累进指数)标准为 7。
第 1 轮:在线编码轮:
所以这一轮是在mettl.com 上进行的。有 3 道编码问题,分配的时间为 90 分钟。
- 给你 n 个密码。您必须打印不同密码的总数。在每个密码上,您可以执行任意次数的操作,可能为零。该操作被定义为,如果索引号的差为偶数,则可以交换字符串的任何 2 个索引上存在的数据,即 swap(a[i], a[j]) if (ji)%2==0。测试用例: 输入:n=5,密码=[“abcd”,“cdab”,“bacd”,“bdca”,“cdba”] 输出:2 解释:因为“cdab”可以转换为“abcd”和“bdca”、“cdba”可以转换为“bacd”,因此您只能获得 2 个不同的密码。
- 今天是 Tushar 的生日,所以他带来了 n 块巧克力,他有 k 个朋友。他必须通过以下方式将所有巧克力分发给朋友。第一个孩子得到 1 第二个得到 2 第三个得到 3 个,依此类推,所以如果有足够的巧克力,那么第 k 个孩子得到 k 个巧克力。现在如果还剩下巧克力,那么他再次将 k+1 巧克力给第一个孩子 k+2 给第二个孩子,依此类推,直到他分发所有巧克力。所以你必须打印 k 个整数来定义哪个孩子得到了多少巧克力。测试用例:输入:n=25 和 k=5 输出:[7 6 3 4 5] 解释:所以在第一次运行中,巧克力分布将是 [1 2 3 4 5],所以现在在第二次运行中总共使用了 15 块巧克力第一个孩子会再得到 6 个糖果,所以他的糖果总数是 7 个,现在我们只剩下 4 个糖果,所以这将给第二个孩子,因为他可以获得多达 7 个巧克力,但我们只剩下 4 个。所以最终的答案是 [1 2 3 4 5] + [6 4 0 0 0] = [7 6 3 4 5]
- 给你 M 表示模数和 N 层数。现在在第一层,你有 1 艘动力船 v=2。现在对于第 i 层中功率为 v 的每艘船,在其下一层中都有功率为 0 到 v*(v+1)%M-1 的不同船。现在给定 M 和 N。您必须找到所有层 % M 中的船舶总数。测试用例:输入:M=4 N=2 输出:3
所以在这一轮中,所有解决2个或2个以上问题的候选人都被选中进入下一轮。所以在我们学院,大约有 170 名候选人参加了这一轮,60 人进入了下一轮。
第 2 轮:团体飞行赛
因此,正如您所知,在这一轮中这是一个基本的笔纸轮,我们得到了 2 个问题,我们必须编写解决方案的描述并在纸上编写代码并给出其时间和空间复杂度。
- 它基于这个问题 https://www.geeksforgeeks.org/print-nodes-distance-k-given-node-binary-tree/ 但有轻微的变化,它有加权边缘,你必须找到所有节点在距该给定节点的范围(a,b)内的距离处。
- 你会得到一个双向链接列表,它的值是整数,你必须确定它是否是回文。测试用例 1:输入:123 <-> -12 <-> -21 <-> -321 输出:回文 测试用例 2:输入:12 <-> -3 <-> 21 输出:非回文
总共有 60 位候选人在这一轮中将所有代码都正确的候选人无论暴力移动到下一轮。因此,有 26 名候选人进入了下一轮。
第三轮:技术面试-I
所以基本上他浏览了我的简历,然后问我喜欢编码中的哪个主题。所以,我告诉他我喜欢贪婪。然后他问了我一个非常简单的问题。
问题是:你必须粉刷你的房子,你的房子有 r 个房间,现在有 n 位油漆工,每个油漆工每个房间花费 ci 金额,他最多可以油漆 ni 个房间,每个油漆工至少要油漆 1 个房间。你必须告诉你粉刷你的房子所需的最低成本是多少。
然后他问我学习了哪些技术科目,以及我学习的所有主题。我认为面试官年龄在 35-45 岁左右,经验丰富,非常乐于助人。面试大概30-40分钟。
第四轮:技术面试-II
所以首先他浏览了我的小组飞轮纸,但它很完美,所以他没有问任何东西。他是一个年轻的面试官,而且更聪明。然后他问了我2个问题。
- 所以他给出了链接列表的输入和输出模式,我必须首先找到该模式是如何形成的,然后编写它的代码。输入:1->2->3->4->5->6 输出:1->3->5->6->4->2。因此,正如您首先看到的,您必须首先制作 2 个链接列表,其中奇数独立节点上的节点为 1->3->5,其他节点位于偶数索引上的节点为 2->4->6,然后反向列表由偶数索引处的节点组成,即 6->4->2,然后连接两个列表。
- https://www.geeksforgeeks.org/detect-and-remove-loop-in-a-linked-list/ 他让我找到我能做的所有方法。
这次采访花了大约 40 分钟,因为我必须在纸上写下两个代码。
第五轮:技术+人力资源面试
所以这是最后的采访。面试官非常有经验,他在微软工作了 18 年,也在微软总部工作过。所以一开始他问我我知道的所有数据结构,并问我最喜欢的数据结构。所以我告诉他向量。然后他问了我一个编码问题。
问题是:给定 n, m 所以现在你必须从 (1, 1) 到达 (n, m) 并且你只能向右和向下移动。您必须打印从 (1, 1) 到 (n, m) 的所有路径。
然后他浏览了我的简历,询问了我的项目和成就以及我的爱好。还问了我下一步的计划。
因此,在所有候选人的面试结束后,立即宣布了结果。我和其他 12 人一起被选中进行为期 2 个月的暑期实习。