微软面试经历 | Set 70(IDC 和 IT 校园内)
微软最近访问了校园,为 IDC 和 IT 简介招聘实习生。
我想分享我的经验。
- 在线 MCQ 回合- 大约 15 个问题和 30 分钟 - cocubes.com 上的 MCQ 问题
问题主要是 C 和Java中的输出类型问题,还有一些关于组合数学的问题。.
- 在线编码轮– 两个关于 cocubes 的编码问题,提供一小时。
第一个问题是一棵二叉树,编写一个函数,返回树的叶子的链表,使得
a) 链表中的节点是从最左叶到最右的顺序,即head是最左叶
b) 使用常量 ( O(1) ) 内存——不允许存储指针等
第二个问题是,给定一个数组和一个沿数组滑动的窗口大小,求每个窗口中唯一元素的计数之和。For example, if the array were 1 2 1 3 3 and window size was three First window - 1 2 1 - only two unique = 1 Second window- 2 1 3 - all unique = 3 Third window - 1 3 3 - only one unique = 1 Total = 1+3+1 = 5 Which was to be returned.
很少有人在 O(n) 中解决它,但大多数人在 O(nk) 中解决它,其中 n 是数组的大小,k 是窗口大小。
.
- Group Fly Round – 给出了两个问题,大约在二十分钟内解决(最多)
问题是:
a) 给定一个已旋转的排序数组,找到排序数组的索引。例如:3 4 5 6 1 2,答案是 3,因为元素 6 的索引是 3。
b) 给定一个数字数组,找出数组中三个数字的最大乘积
我们被期望为我们的解决方案编写代码、编写方法、时间复杂度和测试用例。
对于第一个问题,他们期望 O(log n) 解决方案,其中 n 是数组的大小。
对于后者,他们主要想检查申请人是否考虑了数组中的负数,以及产品可能是三个正数或两个负数和一个正数。.
- F2F 访谈 I - 很少有基于理论的问题,例如 C++ 中的抽象、volatile 关键字。
遇到了一个问题——“给定一个数字数组,编写一个返回平衡二叉树的函数”。他还要求我修改它以返回尽可能接近对称的二叉树。.
- F2F 面试二——首先给出一个简单的图案打印问题——例如,如果给出 16,则打印:
16 11 6 1 -4 1 6 11 16 if input was 10 10 5 0 5 10
挑战在于不声明任何变量或使用任何循环。给出了一个简单的递归函数,它隐式地使用堆栈来打印模式。他很满意。
第二个问题是,给定两个排序数组,在线性时间内合并它们而不使用额外空间,即给定一个具有足够额外空间的数组来容纳第二个数组和第二个数组,它们都已排序,将第二个合并到第一个并以 O(m+n) 时间和 O(1) 空间复杂度返回它,其中 m 是第一个数组的大小,n 是第二个数组的大小。
.
- F2F 面试 III – 这也是部分人力资源面试,我们在其中讨论了微软及其服务/工作文化/竞争。
唯一的问题是给了一个包含所有单词的字典,将所有字谜集一起打印,时间与字典中的单词数量成线性关系。
面试真的很发人深省,面试官乐于助人和友好。感觉就像是作为一个团队解决问题,而不是测试。面试官非常乐于接受我们的问题和耐心。
大约 70 人编写了在线 MCQ 轮次,大约 30 人进入了编码轮次。有的直接被叫去面试,有的需要通过群飞。大部分被选中的候选人都是通过集体飞行的人。