📜  微软面试经历| 148套(实习IDC池校区)

📅  最后修改于: 2021-11-17 09:53:03             🧑  作者: Mango

第 1 轮:(在线编码)

co-cubes 平台上的在线编码回合。 3 个问题 75 分钟。问题非常简单。

  1. 给定两个数组,在第一个数组中找到最小值,在第二个数组中找到最大值,并返回两个元素的乘积(2 分)
  2. 给定一个二维矩阵和一列,我们必须根据该行中该列中存在的元素对矩阵的行进行排序(3 分)
  3. 链接二叉树中同层节点(5分)

45 人中有 12 人进入了下一轮的候选名单。这是一场泳池校园面试 共有来自班加罗尔 5 所不同学院的 50 名学生入围面试。

第二轮:(组飞轮)

  1. 给定一个排序的字符串。像aaaabbccc。您必须将字符串修改为 a4b2c3。诸如我们不应再次遍历字符串的约束。它应该就地,就像我们不应该构造一个新的字符串。
    解决方案: GeeksforGeeks 链接

本轮的目的是淘汰一半的参赛者。

第 3 轮:(技术 F2F)

    这是第一次面对面的面试,面试官非常严格,他根本没有帮助我,也让我气馁。
  1. 他用非常复杂的方式给了我一个简单的问题。最终的问题只是找到最小生成树。

第 4 轮:(技术 F2F)

  1. 检查链表是否是回文。不改变链表。穿越一次。恒定的额外空间。 O(n) 复杂度。
  2. 给定一个按行和列排序的矩阵,搜索元素 x。他期待对数尺度的复杂性。
  3. 实现 c++ 的 atoi函数

面试官给了我第一个问题的提示,但我没能做第一个问题,他也没有鼓励我。

第 5 轮:(技术 F2F)

  1. 给定两个已排序的链表,将它们合并为一个链表。您应该在合并时删除重复项,您不应该在此过程中创建任何新节点。在单次遍历中。
  2. 您将获得一个数组,其中每个元素表示您可以从该位置进行的跳跃次数。您需要找出到达数组末尾所需的最少跳转次数。
  3. 每门课程都对其他课程有一定的依赖性。在一个学期内,您可以选修任意数量的课程,但要选修一门课程,应选修其所有相关课程。您需要找出完成所有课程所需的最少学期数。
    示例:C、基本数据结构、c++(依赖于 C)、高级数据结构(依赖于 Basic ds)、 Java (依赖于 c、c++、Advanced Ds)。您可以在3个学期内完成所有课程(Sem1:C,BDS;Sem2:c++,ADS;Sem3: Java)

面试官非常乐于助人。

第 6 轮:(技术 + 人力资源)

  1. Wap 使用递归来反转链表。 (他让我用递归调用栈解释解决方案)
  2. 您有 N 个内存块创建两个函数 get 和 release。
    函数Get(x) 将 x 作为输入,它应该分配 x 块连续内存并返回 x 开始的索引。
    函数release 获取内存索引并释放内存。
  3. 他讲述了我在 Paytm 的实习经历和工作
  4. 为什么是微软?
  5. 我们为什么应该录用你?

在每一轮中,他们都在测试您编写的代码有多好。他们让我为每个问题编写代码。他们还会检查您的变量名称和编码风格有多好。他们希望每一个解决方案都在空间和时间复杂度上得到优化。请记住,对于他们和大多数其他公司来说,O(2N) 不等于 O(N)。他们需要一次遍历。从 50 名学生中总共选出了 9 名学生。在 Geeks for Geeks 的帮助下,我也被选中参加实习。