2020 年 10 月左右,我参加了 Microsoft E+D 团队的在线面试。一共进行了三轮,其中两轮是 DS Algo 轮,第三轮是设计轮。所有轮次都发生在同一天。
第 1 轮:它是在 MS Teams 视频通话和 codility 链接上进行的,以共享屏幕。面试官迟到了 10 分钟,但非常冷静和乐于助人。这是一个完全从头开始编码的二叉树问题,例如创建树/节点类和其他所有内容。这就是问题所在:https://www.geeksforgeeks.org/longest-consecutive-sequence-binary-tree/。
一旦我在大约 15-20 分钟内完成,他就尝试了几个简单的测试用例。然后他转向我不得不稍微修改我的代码的角落案例。面试结束一小时后,我接到招聘人员的电话,他们将进行第二轮面试。
第二轮:面试官问了我几个关于简历的问题。后来,他转向了一个类似的问题:https://www.geeksforgeeks.org/minimum-number-platforms-required-railwaybus-station/。到那时我还没有为面试做太多准备,所以,我给了他一个空间复杂度为 O(t) 的解决方案,其中 t – 出发时间的最大值。由于它不是最优的,他引导我走向最优的贪婪解决方案。然而,后来,当我无法理解时,他让我编写我所做的方法,并且它适用于他提供的测试用例。
第三轮:面试官是一个老VP或者总监级别的人,很粗鲁,脾气暴躁。此外,我正在使用浏览器在 Teams 中接受采访,因为我没有备用笔记本电脑。我使用团队来共享视频和代码来共享屏幕。他问我为什么在浏览器中使用 Teams 而不是 Teams 应用程序。我解释了原因。他变得非常挑剔,甚至打电话给 HR,HR 回答说没关系,并告诉他继续这样做。他在所有这些戏剧中浪费了 15 分钟,而不是进行采访。他问了我这个设计问题:https://www.geeksforgeeks.org/design-snake-game/。我解释了这个方法,然后开始创建基本的方法签名和类。他没有把问题解释清楚。我猜他希望我已经练习过它什么的。此外,他对提问也不是很热情。当我们讨论使用不同数据结构的方法时,这种情况持续了半个小时。在此之后,我们转向了游戏的多道程序方面,比如线程将共享哪些资源等等。
两个小时后我接到电话说我没有被选中。经过几个月的严格练习和更多面试后,我获得了更好的机会,这一切都取得了最好的成绩。对于微软来说,这就像一种仪式,他们将在第一轮问链表/树问题,在第二轮问贪婪/实现或其他主题,但这是来自我的个人经验和我的朋友。除了一些传统的老歌之外,面试官非常乐于助人。即使您没有最佳方法,他们也会引导您走向相同的方向。
祝你好运!!