📜  微软面试经历 |第 61 组(IDC 校内)

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

微软面试经历 |第 61 组(IDC 校内)

微软最近访问了我们的校园。


第 1 轮:(MCQ)30 分钟。

这是一场有 15 个 MCQ 的在线比赛,时间为 30 分钟。本轮在 cocubes.com 上进行,问题主要来自 C、C++、 Java、OS。

本轮约有60人入围。


第 2 轮:(编码)60 分钟

这一轮也是在 cocubes.com 上举办的,有两个编程问题。

1. 给定一个大小为 n 的数组和一个整数 k,我们需要返回大小为 k 的窗口中所有不同数字的计数之和。窗口向前滑动。

例如 arr[] = {1,2,1,3,4,2,3};

令 k = 4。

第一个窗口是 {1,2,1,3},不同数字的计数是 2….(1 重复)
第二个窗口是 {2,1,3,4} 不同数字的计数是 4
第三个窗口是 {1,3,4,2} 不同数字的计数是 4
第四个窗口是 {3,4,2,3} 不同数字的计数是 2

因此总和为 2+4+4+2 = 12。
还给出了数组元素在 0 到 100 之间。

2. 给定一棵二叉树,我们需要从叶子节点中创建链表。限制是它应该使用 O(1) 额外空间来完成。我们也可以使用 node->right 指针来连接链表。

本轮约有30人入围。


团体飞轮:

1. 给定一个链表,以 k-chunks 反转它。
https://www.geeksforgeeks.org/reverse-a-list-in-groups-of-given-size/

本轮共有12名学生入围。


个人面试第 1 轮:(45 分钟)

1. 给定一个无限的二进制数字流 (0,1) 和一个输入数字 n,确定该数字是否在任何点都能被 n 整除。

我发现这个问题实际上很难……我首先解决了一些特定的情况,例如 n = 2 和 n = 3。然后通过与面试官的讨论,我被引导到基于 DFA 的部门。
https://www.geeksforgeeks.org/dfa-based-division/

本轮需要完整的代码。为了解决这个问题,讨论花了将近 30 分钟。

2.假设您是一支笔的制造商,您将检查所有参数来测试一支笔。

3. 继续上面的内容,您将如何测试浏览器中的地址栏。

这两个问题都是开放式的。他只是想看看我能想到多少案例。


个人面试第 2 轮:(60 分钟)

1. 螺旋打印矩阵。
https://www.geeksforgeeks.org/print-a-given-matrix-in-spiral-form/。

然后他添加了进一步的约束,例如,如果我想以顺时针和逆时针方向以螺旋方式打印矩阵。他还添加了可以从矩阵的任何角落开始的约束。对我的方法进行了详细的讨论。他实际上对我接近解决方案的方式感到满意。


个人面试第 3 轮:(60 分钟)

1.详细讨论我在实习期间完成的机器学习项目。

2. 给定一个整数,编写一个函数将其转换为字符串。

3.给定一个字符串用'%20'替换所有空格
花了一些时间来解决这个问题,但设法完全解决了它。他要我检查所有基本情况。


人力资源回合:

1. 正常的人力资源问题。

微软的所有练习题!