📜  微软面试经历 |设置 90

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

微软面试经历 |设置 90

我最近参加了微软的一次面试。以下是我的经验:

第1轮:
这是一个书面回合。每个人都被问到以下两个问题:

  1. 查找距离给定节点 k 处的所有节点
  2. 给定一个数组,排列元素,使得通过连接元素形成的数字最大。例如:输入 = [9, 93, 24, 6],输出应为:[9,93,6,24]。这是因为如果你连接所有的数字,993624 是可以形成的最高数字。

本轮比赛时间为 40 分钟。但是,如果您要求,他们会给您额外的时间。这一轮结束后,午餐供应。

第 2 轮:

    这是一个面对面的回合。几乎第一轮的每个人都被要求参加 F2F 面试。简单介绍后,他问了我这个问题:
  1. 给定一个包含大量数据的数组(例如 n,其中 n 可以达到一百万),数组中的值在 1-k 的范围内,其中 k<<O(k) 额外空间。
  2. 他问了另一个关于线程安全单例类的问题,并让我为它编写代码并解释它。
  3. 然后问了几个问题,为什么微软和类似的东西。

第三轮:
我不记得正确的问题,但它是关于数组和交换并找到可能的最低成本的东西。

第四轮:

  1. 最长回文子串集 1

    但是,面试官对代码不感兴趣。他让我为这个问题做一个TDD。所以他让我为这个问题写测试用例。他想看看我是否真的可以分析并找到这个问题的各种可能的案例。经过一番努力,我能够找到各种不同类型的测试用例。我给出了一个蛮力解决方案。

第五轮:

  1. 两个元素之间的最大差异,使得较大的元素出现在较小的数字之后

    但是,我给出了与本页中提到的解决方案不同的解决方案。

第六轮:

  1. 编写String类的实现。实施您选择的任何四种方法。
  2. 为 linux 的 tail 方法编写代码,您必须从末尾读取一些 x 行的大文件,而无需读取整个文件。我给出了一些基于索引的解决方案。面试官非常友好,在找到解决方案方面提供了很多帮助。

    由于面试结束时已经很晚了,他们安排了一辆出租车让我回家。

总的来说,体验非常好。面试官和HR都很友好。

微软的所有练习题!