📜  微软面试经历|第 133 组(校内实习)

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

在线编码回合
410 名学生参加了在线编码回合,cgpa 截止为 7。我们向我们提出了三个编码问题,我们有 90 分钟的时间来解决三个问题。
1. 我们得到了一个数组。数组的值是内存大小,系统所需的内存只能用 2 的幂表示。我们必须返回系统所需的内存大小。
例如: – arr = {2,1,4,5}
总计 = 12
所以,需要的内存=16

2.两个字符串被给出,并且我们不得不修改1个字符串,使得所有的2字符串的共同的字符已被删除和第二字符串的常见的字符必须与第一字符串的常见的字符被级联。
例如: –字符串1- aacdb 和字符串2 – gafd
输出 – cbgf。

3. 我们得到了一个链表,我们必须将它的偶数和奇数位置节点分开,这样奇数位置节点在偶数位置节点之前,偶数位置节点必须附加在奇数位置节点之后,但顺序相反。
例如 – 链表: – 1 -> 2 -> 3 -> 4 -> 5 -> 6
输出: – 1 -> 3-> 5 -> 6 -> 4-> 2。

12 名学生被选中进行进一步的面试。

组飞轮
在我们的小组飞行中,我们只被问到一个问题。
给了我们二维空间中的 N 个矩形,我们得到了每个矩形左下角的 (x, y) 坐标以及每个矩形的高度和宽度。我们必须返回重叠矩形左下角的 (x, y) 坐标,并给出其高度和宽度。

从 12 名学生中选出 3 名参加下一轮面试。

技术面试(第一轮)
1.首先简要讨论我的项目。然后他问我在课程中学习了哪种数据结构,以及我是否熟悉散列技术。
我回答了链表和树,并说我对散列很满意,然后他问了一个关于散列的问题。

2. 给出了 N 张机票,我们必须使用这些点对从源到目的地创建路线。他和我讨论了这个方法,然后让我编写代码。
我从基于散列的技术开始并创建了散列映射 首先,我找到了原点,从原点开始,我通过在散列图中搜索并在散列图中找不到条目时停止到达后续节点,直到到达目的地,然后然后到达了最终目的地。

3.给我N个元素,n非常大。我不得不打印最小的元素。
我首先通过数组的线性遍历给了他一个 O(n) 方法,然后他问我是否可以使用堆,然后我给了他一个基于最小堆的方法。
他对我的做法很满意。


技术面试(第二轮)

1.给定一个大小为 AxB 的矩形,我们必须找到可以由该特定矩形形成的最小正方形数。
我首先采用了一种贪婪的方法,但它在几个测试用例中失败了,然后我转向了基于递归的解决方案,它有重叠的子问题。所以,我决定使用动态编程策略,然后他要求编写我的方法的伪代码。 https://www.geeksforgeeks.org/paper-cut-minimum-number-squares/

2、实现queue(类),在类中实现Enqueue和Dequeue函数。
我使用链表实现了它,然后他让我使类线程安全。这基本上是一个操作系统问题,他想测试我的操作系统知识。
然后他问这个队列是否被N台机器使用,每台机器都有自己的队列视图,你将如何保持一致性。

人力资源回合

1.他问我最喜欢的科目。然后他问了虚拟寻址和转换后备缓冲区(TLB)之间的区别。
然后他问作为开发人员,如果知道系统实现分页这一事实,您将如何制作您的程序。

2.到目前为止你的面试经历如何?是否符合您的期望和准备?

3.你有什么问题吗?我问入公司前应该怎么准备?然后他推荐我从事一些开源项目。

面试体验还是不错的。 Geeks for geeks 对我有很大帮助,因为它在我的安置准备中帮助了我,并提供了安置准备所需的几乎所有内容。

微软的所有练习题!