微软面试经历 |第 75 组(适用于 SDE II)
我最近在班加罗尔为他们的 CRM 团队参加了 Microsoft 面试。
F2F 第一轮:
设计与实施:生产者和消费者问题。生产者生产不同类型的消息,消费者为不同类型的消息注册自己。需要设计和实现 Producer、Consumer 和 Delegator,它负责存储消息并将消息传递给适当的侦听器。
更改了问题以处理数百万条消息。
更改了问题以处理不同的优先级消息。
Producer、Listener 和 Delegator 的线程模型。
最后他让我编写 Delegator 的 2 个方法。
1:将来自生产者的消息添加到其内部队列。
2:委托,将消息传递给适当的侦听器。
我的观点:设计问题没有正确或错误的答案,实际上面试官也说了同样的话。从简单的、极简的设计开始,并随着需求的变化而改进/改变。
F2F 第 2 轮:
1. 一个包含整数(正、负和零)的 MxN 矩阵。对于每个包含 0 的位置,将对应的行和列标记为 0。
告诉他排队进场。但他希望在 O(n) 时间复杂度中具有 O(1) 空间复杂度。
2. https://www.geeksforgeeks.org/find-the-k-most-frequent-words-from-a-file/ 的变体
F2F 第 3 轮:
1. 实现无循环的 Power(x,y)。面试官希望涵盖所有测试用例,例如 Power(x,0) 和最优化的解决方案。
2. 将 MxN 矩阵旋转 90 度。这就是我的运气用完的地方,面试官给了我提示,但仍然无法提出解决方案。