📜  微软IDC面试经历(校内实习)

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

第1轮(在线测试):关于cocube的三个问题:

  1. 第一(2 分):https://www.geeksforgeeks.org/calculate-the-total-fine-to-be-collected/
  2. 第二(3 分):找到最小的数字,当附加到给定数字时,将使结果数字成为回文。
  3. 第三(5分):https://www.geeksforgeeks.org/remove-bst-keys-outside-the-given-range/

    98人被选入下一轮。所有做完所有 3 个问题或(2 个问题和一个好的 cg)的人都进入了下一轮

第二轮(组飞):

    他们分三组进行了这一轮。我在第一组,其中包括 42 名学生。一个常见的问题写在黑板上,大约 6-7 名学生被分配了一个共同的导师。
  1. 问题是“给定一个循环链表和一个整数k,你需要遍历链表直到索引k(第一个索引为1)并删除第k个索引处的节点。重复执行此操作,直到只剩下一个节点并返回该节点。”我们被要求在 45 分钟内将解决方案写在纸上。他们专注于编写干净的代码并考虑所有极端情况
    解决方案:(GeeksforGeeks 链接)

    共有 23 名学生进入了下一轮,共 98 名。

第三轮(技术面试):

  1. 他询问了我的分支和我完成的课程。
  2. 他给了我一个二叉搜索树和一个数字k,让我找到两个节点来得到和k。考虑到所有测试用例,他想要为此编写适当的代码。然后他让我为二叉树编写代码。他在整个谈话过程中都帮助了我,并对我的回答感到满意。
  3. 然后他给了我一个数组和一个数字 k 并让我找到数组中所有数字的组合以获得所需的总和 k。我为此提供了一种回溯方法,他再次要求我为此编写适当的代码。之后,他让我从数组中获取两个数字的所有组合,以获得所需的总和。我给出了一种散列方法并为此编写了代码。然后他让我在没有散列的情况下这样做。我为此给出了两个指针的方法。
    解决方案:GeeksforGeeks 链接

第四轮(技术面试):

  1. 他看了我的简历,问我关于大数据的项目。我向他解释了我所做的一切。他让我设计一个大数据系统来查看所有生成的日志文件,并通过查看日志文件生成系统立即找出错误。我挣扎了很多。我告诉他我的主要工作是建立大数据系统,我对系统设计了解不多。
  2. 然后他转到 DSA 并要求我将数组数据从一个位置移动到另一个位置,仅给出源和目标指针。然后他给了我一个问题“给定股票价格,找到重复买卖股票所能获得的最大利润”。我向他解释了,他想要正确的代码。他给了我足够的时间来正确编写代码。最后,他建议我在编写代码之前专注于所有测试用例。
    解决方案: GeeksforGeeks 链接

最终选出了12名学生。