亚马逊专访 | Set 114(校内实习)
最近亚马逊印度公司访问了我们的校园进行了为期 2 个月的实习。进行了三轮
2 道在线编码问题 + 20 道 MCQ
MCQ题主要是数据结构6-7题,C语言输出程序7-8题,一般能力、概率、排列和组合4-5题。
这两个问题是:
一种。给定一组间隔,您必须对重叠间隔进行分组并以非降序显示所有间隔。
例如:(1,5),(8,11),(3,6),(10,20)
输出:(1,6),(8,20)
提示:虽然这是一个非常简单的问题,并且可以在许多在线门户网站上找到,但请记住,给定的输入是字符串形式,需要仔细解析。
为此,您可以使用类似的东西,而不是将字符串转换为整数
while(scanf("(%d,%d),",&a,&b))
{
//store a and b as you wish to
}
湾。给定一组整数,负数和非负数,您需要重新排列它们,使负数和非负数在交替位置。
约束:如果负整数更多,所有负整数和非负整数的顺序必须与以前相同,超出的整数应出现在数组的末尾,非负整数也是如此,以防它们的数量更多.
eg: -5,-2,5,2,4,7,1,8,0,-8
output: -5,5,-2,2,-8,4,7,1,8,0
同样,对于输入,您可以使用上述技术。
本轮面试后,150 名学生中约有 20 人被选中进行个人面试。
以下是我们两人的面试经历。
人1:
第1轮:
1. 给定一棵二叉树,它有 3 个指针,left、right 和兄弟,其中所有的 left 和 right 子指针都已被填充,您需要用同一级别的下一个节点的地址填充兄弟指针。如果是关卡的最后一个节点,则填NULL。
我首先告诉他一种使用带有队列的级别顺序遍历的方法。然后他让我使用递归在没有队列的情况下做到这一点。我告诉他方法,当他满意时,他让我在纸上写一个代码,涵盖所有角落案例。
2. 给定一个大小为 2n+1 的数组,其中 n 个整数重复两次,一个整数只出现一次,找到该整数。我用异或告诉他。然后他把问题改成
给定一个大小为 2n+2 的数组,其中 n 个整数重复 2 次,2 个整数只出现一次。找到他们两个。这也可以使用 XOR 来完成。您可以在 Geeks for Geeks 的数组部分找到解决方案
3. 给定任何二叉树,其中所有叶子的左右指针从左到右连接在一个双向链表中,而不是指向 NULL。此外,最左边叶子的左指针指向该节点本身,最右边叶子的右指针指向该叶子本身,如果有一个内部节点没有左或右子节点,则该特定指针将指向该节点本身。
您需要找到树的中序遍历。
一旦我告诉他方法,他再次要求我在纸上写一个代码。
4. 他向我询问了我所知道的数据结构,然后开始询问有关 Graphs 的问题。我们如何代表他们?
哪个是更好的邻接矩阵或列表?
然后他给出了一些情况,问我应该使用这两种实现中的哪一种。
第 2 轮:
1. 他用大约 15 分钟详细地询问了我的项目。
2. 然后他问我第三和第四学期学过的科目。
我忘记了我学过的所有科目😀 😀 😀
经过深思熟虑,我说出的第一个主题是 Unix Linux 编程。然后他让我在 5 分钟内写下我知道的所有命令。我列出了将近 20 个。他问我其中几个的功能以及它们之间的区别。
3. 最后他问了我一个关于二叉树的问题,很简单。
将二叉搜索树的每个节点的数据替换为所有大于它的节点的总和。
我给了他使用反向中序遍历的方法。然后他让我在纸上写一个代码。我在代码中使用了指针。然后他让我写一个不使用指针、静态变量或全局变量的代码。
我是这么写的。最后他显得很满意。
人 2
第1轮:
1. 给定一个单向链表和一个整数 k,我必须编写代码以成对的 k 对列表进行反转,同时处理所有基本情况。
例如。 1->2->3->4->5->6->7->8k=3
o/p 3->2->1->6->5->4->8->7
她实际上在许多基本案例中尝试了我的代码,试图找到错误😛
2. 给定两个数组,一个大小为 n,另一个大小为 (n+k),但填充了 k 个值,我被要求在不使用任何额外空间的情况下将这两个数组合并到第二个数组中。我很快给了她逻辑,我们继续下一个问题。
3. 给定一个字符串,找出字符的字符串。
例如。 ABCBA
o/p: 0(因为 'a' 最初出现在 'b' 之前,尽管两者都重复了两次)。
再次需要无错误代码。
4. 然后她问我关于我目前正在进行的研究项目的问题。这又持续了10-15分钟。
第 2 轮:
1. 这一轮从关于我的研究项目的问题开始。然后他问我喜欢哪种数据结构。我们对堆和相关的时间复杂度进行了长时间的讨论。
2. 给定一棵二叉树,树中的任何节点和一个整数 k,打印距离给定节点 k 距离处的所有节点。
请注意,节点可能在上方或下方。我们首先讨论了一种方法,在他对我的解释感到满意后,他要求提供无错误的代码。
3. 给定一个整数 n,在 n 个没有节点的情况下,你能做出多少个 BST?
我告诉他加泰罗尼亚数和直接公式 - 2^n - n。但是他想要一个推导,所以我建立了一个递归并向他展示了 DP 来评估它。
4. 给定 n 个人,告诉你所有属于同一国家的人。你要告诉不属于同一个国家的人的数量,
我将其表示为图表并应用 dfs 来获取连接组件的数量和每个组件的大小。然后这是一个没有任何组件的简单公式。
之后,他开始讨论在亚马逊的生活,公司对你的期望以及你在公司应该做什么。