📜  微软面试经历 |设置 179(校内)

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

微软面试经历 |设置 179(校内)

第0轮:编码轮

3个编码问题:

平台 cocubes(用户界面非常糟糕,准备在无法放大的非常小的文本编辑器中进行编码)。

1.查找字符流的ASCII值的平均值(1分)。

2.评估一个给定的由数字和运算符组成的中缀表达式。

3.链表问题:在奇数位置插入倒置的节点列表。

1->2->3->4->5 到 1->5->2->3->4

(其他问题是){

2.正则表达式匹配

找出在给定的字符串中存在多少个匹配 10*1 的子字符串。

3. 修剪 BST,使其仅包含具有给定范围内的值的节点。

}

第一轮:笔和纸轮

给出了 2 个问题,预计将编写正确的代码。

1.火车到达和离开时间已经给出,你必须计算最大值。需要站台,这样火车就不必等待了。

2.设置所有树节点的next指针。

(下一个指针应该指向同级当前节点的右节点)。

第 2 轮:技术面试 1

    1. 问了我的项目。
    2. 从 preorder 构造 BST 并对其进行优化。为它编写正确的代码。 (我也和面试官讨论过为什么复杂度不能比 nLogn 降低)。
    3. 将矩阵旋转 90 度(她问我是否已经完成,我回答是,她给了我一个更简单的)。
    4. 检查树的所有叶节点是否位于同一级别。也写代码

.


第三轮:技术面试2

1.要求我为 hashmap 写一个 random() 以在 0(1) 时间内返回一个随机键。

他帮助我完成了它,我在构建解决方案时谈到了解决方案的所有优点和缺点。

2.让我写代码来构造Trie。

3. 问我作为应用程序级程序员计算网络带宽的问题。

BW=数据传输/时间延迟(他问但我不同意,我谈到了所有延迟和重新传输以及时间延迟所涉及的东西,而不是他暗示文件读/写)

所以应用观点::

时间延迟=文件读/写时间+传播延迟

所以BW =数据传输/传播延迟。

4. 给了我 25 匹马的问题,我礼貌地回答说我已经知道了。

5. 然后他问我如果每个人要互相比赛,会有多少场比赛。

答案:nc2。

6. 一场比赛如果有淘汰赛,有多少场比赛。

答案:n/2+n/4+n/8+……+n/2^logn

第四轮:技术暨HM面试

  1. 讨论项目,我做了什么以及我的队友做了什么。我从中学到了什么。
  2. 中缀表达式求值。他问为什么你需要 2 叠。
  3. 设计模式
    1. 我在项目中使用了什么设计模式
    2. 你对单例设计模式了解多少
    3. 编写代码来实现单例设计模式
      1. 我写了 4 种方法以及它们的优缺点。
  4. 为一个呼叫中心编写一个函数getCallHandler(),该呼叫中心由 10 个员工 1 个领导 1 个呼叫中心负责人组成。
    1. 只有在没有员工可用的情况下,才必须将电话转给主管,只有在没有员工和主管可用的情况下,才必须将电话转给呼叫中心负责人。
    2. 然后他问我的解决方案什么时候会失败,我谈到了多线程程序和共享变量的竞争条件。
    3. 他让我编写代码来同步它。
  5. 询问我使用的操作系统以及我是否使用过它的任何 api。问了我关于ubuntu的问题。
  6. 为什么我想加入微软?
  7. 你喜欢什么技术?

建议:
1.不要花太多时间写代码,全程保持沉默。写一半的代码,讨论你的方法和它的缺点。他们甚至可以通过查看您写一半的代码来节省编码。

2. 如果你不能假装你已经做了一个问题,那么直接告诉面试官。

3. 与面试官讨论你的想法和方法,如果他们不知道你卡在哪里,他们将无法帮助你。这也给他们一种印象,即你可以与其他人一起解决问题,或者你可以合作(团队合作者)。