微软面试经历 | Set 77(IDC实习)
最近微软访问了我们的校园进行IDC实习计划,以下是我的面试经历。
在线 MCQ 回合:由 Cocubes.com 上的 15 个 MCQ 问题组成。这是一个简单的回合,主要包括 c++/ Java的输出问题。除此之外,还有一些关于虚拟功能和操作系统的问题。
在线编码回合:
一小时内出现两个编码问题,再次在 Cocobues.com 上
1.将二叉树的所有叶子节点保存在双向链表中,将右节点作为下一个节点,将左节点作为前一个节点。
https://www.geeksforgeeks.org/connect-leaves-doubly-linked-list/
2.给定一个数组,找到最大值 j - i 使得 arr[j] > arr[i] 。
https://www.geeksforgeeks.org/given-an-array-arr-find-the-maximum-ji-such-that-arrj-arri/
我花了 40 分钟来编写这两个问题。
团体飞轮:
由于我在第二轮之前一直是前四名,因此我直接被选中参加面试。但是,是的,据我的朋友说,这轮比赛有点艰难。剩下的学生中只有 3 名学生入围。
面试第一轮:
首先,介绍一下你自己和一些关于项目的讨论。
关于笔和纸的编码问题:考虑到每一个该死的极端情况,将字符串转换为整数。
面试第二轮:
最短的一轮,笔和纸上的一个编码问题:
从char 数组中删除Alternate Duplicate字符,您必须在 Place中执行此操作。就像只保留每个字符的奇数出现。
例子:
输入:“你的眼睛很漂亮”
输出:“ you gtbeaiful es ”
允许的时间复杂度为O(n) ,空间复杂度为O(1)。花了 10 分钟才想出一个算法。面试官对我的算法很满意,并说“无需编写代码”。
提示:使用两个指针方法和长度为 256 的 Bool 数组。
非常感谢 GeeksForGeeks。除了最后一个问题,所有问题都来自 GeeksForGeeks