📌  相关文章
📜  微软面试经历|第 137 组(适用于软件工程师 II)

📅  最后修改于: 2021-09-23 06:19:01             🧑  作者: Mango

这是为 Skype 团队准备的。 2 次与经理的访谈,1 次与合作伙伴的访谈。

第一轮(1.5 小时)

  1. 对以往项目的讨论。
  2. 给定一个排序的整数数组,打印数组中所有不同的元素。给定的数组可能包含重复项,并且输出应该只打印每个元素一次。
  3. 给定一个排序的整数数组,打印在数组中只出现一次的所有元素。给定的数组可能包含重复项,并且输出应该只打印每个元素一次。
    这两个问题的解决方案都需要空间复杂度 O(1) 和时间复杂度 O(n)。
  4. 设计一个有助于计算每天平均 Skype 通话时长的系统。其中从移动应用程序跟踪事件。需要处理所有边缘情况,例如可以以任何顺序将事件记录到服务器,并且服务器端也可能会丢失一些事件。

第二轮(1小时)

  1. 项目讨论就像最具挑战性的项目,我处理过的最有趣的问题。
  2. 在已排序和旋转的数组中搜索元素。考虑所有边缘情况。
  3. 在所有情况下设计和实现 LRU 缓存。

最后一轮(1.5 小时)

  1. 基于过去经验的问题。
  2. 名人问题。 https://www.geeksforgeeks.org/the-celebrity-problem/
  3. 在 2D字符矩阵中搜索单词“Microsoft”。
  4. 有 n 个汽油铺位位于一个圆圈内。我们有一辆行驶里程为 1kmpl 的汽车。给出了汽油铺位之间的距离和每个汽油铺位可用的汽油升数。需要找到起点,使得汽车可以访问整个圆圈。