📜  微软面试经历| 2020 年暑期校外实习

📅  最后修改于: 2021-11-10 06:18:15             🧑  作者: Mango

1. 在线回合 [ONE TEST 2019] [90 分钟]

  • 这一轮对来自印度所有学院的学生开放。
  • 这一轮有 3 个编码问题。
  • 编码问题非常简单,并且主要是基于几乎不需要的逻辑来实现的。
  • 其中一个问题是
    • 给定一个JSON字符串查找字符串的最大深度。
    • 示例“a:{b:{a:’z’, b:’y’}, c:{z:[2,3]}}”。
      • 这里的最大深度为 3。
  • 我能够在 15 或 20 分钟内解决并提交所有 3 个问题。
  • 一个月后,我接到了在线面试的电话。

2. 在线采访 [45 分钟]

  • 这一轮侧重于数据结构、算法和实现。
  • 这一轮只问了一个问题。
  • 问题:实现一个支持 3 个操作的 DS。
    • 插入
    • 删除
    • 获取随机元素(从元素集中返回一个均匀随机的元素)
    • 保证元素是唯一的。
    • 我被要求在 O(1) 时间内实现支持所有这些操作的 DS。
  • 大约 15 分钟后,我想出了一个最佳解决方案,并能够在 20 分钟内实施相同的解决方案。
  • 一周后,我收到了一封现场面试的邮件。
  • 我的解决方案。

现场采访

  • 采访是在海得拉巴进行的。
  • 现场面试包括2轮。
  • 在我的批次中,有 25 名学生,其中 9 名被选为实习生。

3. 现场第 1 轮 [技术] [75 分钟]

  • 这一轮主要集中在系统设计上,但也提出了 2 个 DSA 问题。
  • 问题 1给定一个矩阵,找出一个总和最大的子矩阵。
    • 朴素的解决方案需要 O(n ^ 4) 时间。
    • 这是一个标准的 DP 问题,可以使用 2D Kadane 算法在 O(n ^ 3) 时间内解决。
    • 我给出了两种解决方案。
  • 问题 2给定一个按行和按列排序的矩阵,找到一个给定的元素。
    • 朴素的解决方案需要 O(n ^ 2) 时间。
    • 通过在每一行或每一列中应用二分搜索,可以在 O(n * log n) 时间内解决。
    • 也可以通过从右上角的元素开始搜索,在 O(n) 时间内解决。
    • 我给出了所有 3 个解决方案。
  • 这两个问题都是在面试的前 15 分钟内提出的,面试的其余部分都集中在系统设计上。
  • 问题 3设计餐厅管理系统。

4. 第 2 轮 [技术 + 人力资源] [40 分钟]

  • 这一轮面试官问了一些简历和我的项目相关的问题。
  • 问题 1 请介绍一下您自己。
  • 问题 2给定两个非常大的数字(每个都超过 500 位),将它们相乘。
  • 问题3在我的一次实习中,我(和一个朋友一起)创建了一个网站,所以他让我解释我从需求收集到部署的整个网站开发过程。
  • 我的其他项目也被问到了类似的问题。
  • 我在三星研发班加罗尔的第二年暑假做了实习,所以面试官问我三星今年是否给我提供实习机会,还问了我在那里的经历。
  • 最后一个问题三个素质 为什么我们应该雇用你?
  • 这是一个标准问题,我给出了我在网上阅读的答案。

我被选中参加 2020 年夏季实习,并在实习结束时获得了 PPO。

祝你面试一切顺利。