微软面试经验|第94组(实习)

第一轮 (在线轮)

null

它有大约15个mcq问题,大部分是技术性的,有我们在大学里学过的几乎所有CS科目的问题。我很幸运地猜对了大部分问题,因此被要求进行编码。

第二轮 对于选定的学生,有一轮编码,其中有两个数据结构标准问题,来自Geeksforgeks。组织。我在所有测试用例工作的情况下完整地解决了一个问题,一个月后结果出来了。我又一次幸运地通过了这一轮,没有通过只解决一个程序来解决一个程序…。

第三轮 下一轮是小组飞行(书面编程),随后是技术面访谈。这些回合在班加罗尔举行。

  1. 在二叉树中找到两个节点的最小共同祖先 . 我问分配给我的小组的人是否可以改变节点的结构,使树具有父指针,那个人说可以。所以,我改变了结构,让它有父指针,还使用了布尔标志变量,这非常简单;当两个节点从自身到根的路径中有任何公共节点时,该节点就是这两个节点的祖先。所以我假设函数有三个参数,root,node1和node2。首先我假设所有节点的flag为零,然后我从一个节点遍历到根节点,使路径中的每个节点都将flag变量设置为1。后来从第二个节点遍历到根节点,在遍历过程中,我检查标志变量是否为1,如果为1,则返回该节点作为这两个节点的祖先…。时间复杂性是O(h)(我想是的)… 我在所有测试用例中都很好地解释了这一点…。所以分配给我小组的人对我的解决方案很满意。
  2. 给定两个排序数组(包含重复元素),从两个数组中找出第k个最小数。 我解决这个问题的方法是,为每个数组维护一个索引,两个数组都初始化为各自数组的第一个元素。循环k次,在每次迭代中找到当前索引中的最小元素,并增加包含最小元素的数组的索引。如果元素相等,则增加两个索引。时间复杂度为O(k)。 我再次向我的组员解释了我的解决方案,并确保我的组员对我的测试结果满意。 由于我确保自己处理了角落里的案件,最重要的是,我给出的解决方案让分配给我团队的人满意,所以我被要求进行面谈。

面谈 简单介绍一下。我们进进出出地谈论我的项目,他也想在我的手机上看到我的应用程序。他问了几个关于项目实施的基本问题。 后来他给了我一个技术性的问题,折叠起来 合并 链接列表…。我现在相对来说不那么紧张了,但在纸上编码方面还是不太好…。。犯了很多错误,但不知怎么写了一些代码…。但当他向我指出时,我发现并纠正了一些错误……但这次我不够幸运,在这一轮之后被拒绝了。

如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享