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

📅  最后修改于: 2021-11-16 14:39:13             🧑  作者: Mango

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

前2分):https://www.geeksforgeeks.org/calculate-the-total-fine-to-be-collected/

第二(3 分):找到最小的数字,当附加到给定数字时,将使结果数字成为回文。

第三(5分):https://www.geeksforgeeks.org/remove-bst-keys-outside-the-given-range/

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

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

第三轮:(技术面试)他问了我的分支和我做过的课程。然后他说他会问我关于树木的问题,因为我说过 DSA 作为课程之一。他给了我一个二叉搜索树和一个数字k,让我找到两个节点来得到和k。考虑到所有测试用例,他想要为此编写适当的代码。然后他让我编写代码,如果它是二叉树。他在整个谈话过程中都帮助了我,并对我的回答感到满意,尽管他想要一个我很挣扎的书面代码。

然后他给了我一个数组和一个数字 k 并让我找到数组中所有数字的组合来得到总和 k。我为此提供了一种回溯方法,他再次要求我为此编写适当的代码。之后,他让我从数组中获取两个数字的所有组合,以获得所需的总和。我给出了一种散列方法并为此编写了代码。然后他让我在没有散列的情况下这样做。我为此给出了两个指针的方法。他一再关注我是否考虑了极端情况。

第四轮(技术面试):他说他没有准备任何东西。他看了我的简历,问我关于大数据的项目。我向他解释了我所做的一切。他让我设计一个大数据系统来查看所有生成的日志文件,并通过查看日志文件生成系统立即找出错误。我挣扎了很多。我告诉他我的主要工作是建立大数据系统,我对系统设计了解不多。然后他转到 DSA 并要求我将数组数据从一个位置复制到另一个位置,仅给出源和目标指针。然后他给了我一个问题“给定股票价格,找到重复买卖股票所能获得的最大利润”。我向他解释了,他想要正确的代码。他给了我一些时间来正确编写代码。

最终选出了12名学生