📜  微软面试经验(适用于 SDE-1)

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

微软面试经验(适用于 SDE-1)

面试过程总共有四轮。 3轮数据结构和算法,一轮是关于系统设计。我被要求为所有这些问题在白皮书上编写代码。

第1轮:

1. 给你一个所有人进出办公室的时间。任务是找出最大人数的时刻是多少,如果超过一次,则第一次返回。

输入格式:

[进入时间数组]

[退出时间数组]

输入:

9 1 2 5 6 8

10 4 3 6 7 9

输出:2

解释:在时间 2 有两个人。在时间[1] 来的人和在时间[2] 来的人仍在办公室内。

2. 这是第二个问题。

第 2 轮:

  1. 这是第一个问题。
  2. 这个问题与第一轮第二个问题相同,但这里要求反转的数据结构是队列,并且不使用任何额外的空间和 O(n) 时间复杂度。
    • 输入格式:[队列]、[组大小]
    • 输入:4 5 3 2 5 6 7 1, 3
    • 输出:3 5 4 6 5 2 1 7

第三轮:

这是一个设计回合。问的问题是这个。

第四轮:

这是这一轮要问的问题。

预计所有问题都将以 O(n) 时间复杂度和 O(1) 时间复杂度来解决。最后一轮问题所需的时间复杂度为 O(logn),空间为 O(1)。