📜  亚马逊专访 |设置 3

📅  最后修改于: 2022-05-13 01:58:29.457000             🧑  作者: Mango

亚马逊专访 |设置 3

请在下面找到我的亚马逊采访的详细信息。

采访日期: 2012 年 7 月 26 日

轮数: 1 次在线考试 + 4 次 PI

面试类型:新生校园面试


在线测试(时间):90分钟

20 个客观问题:能力和基本 C 目标问题。

2个主观问题:
I. 给定每个节点中包含字符的链表,以这样的方式分离其节点,使得所有包含元音的节点都移动到链表的末尾。我们将不得不维持秩序。
二、括号检查器。


面试第一轮(50分钟)

问题 1:给定两个链表,其节点包含一个数字作为数据成员。两个列表都代表一个数字。您必须添加它们并返回结果列表。
输入:9->9->3->4->5 和 8->9->1(代表 99345 和 891)
输出:1->0->0->2->3->6
我的解决方案:反转链接列表。创建反转的新总和列表。最后反转结果列表。

问题2:面试官要求在不更改原始列表的情况下解决上述问题。
我的解决方案:计算两个列表中的节点数。如果相等,则只需递归添加两个列表。如果不是,则通过节点的差异推进一个临时 ptr,它是指向较大列表头部的指针,然后添加 temp 和列表 2 指向的列表。确保跟踪进位。递归添加。传播较大列表的剩余元素的进位。被要求编码。编码它。


面试第二轮(60分钟)

问题 1:在一次扫描中从链表末尾删除第 n 个节点。

问题2:在链表中,除了下一个ptr,还存在一个随机ptr。克隆链表。
在 O(n) 中做到了,但是通过修改链表然后恢复它。被要求在不对原始列表进行任何修改的情况下这样做。在 O(n^2) 中做到了

问题 3:给定一个 BST 的两个节点。打印从第一个节点到第二个节点的路径。除了正常的左右指针外,还为您提供父指针。


面试第三轮(1小时)

问题1:有一个n 整数数组,其中元素的范围是n,即最大数和最小数之差是n。找出重复的数字。

问题 2:问题 1 的延伸。被要求找出每个数字重复的次数。

问题3:有n帧,每帧m个数据元素。每帧中的数据元素按递增顺序排列。为您提供 m*n 空间,您必须在其中按升序排列所有数据。

我的第一个解决方案是使用归并排序。他修改了这个问题,因为只有 O(n) 空间,你需要尽可能快地以递增的顺序发送数据。
我的第二个解决方案是使用最小堆并用所有 n 帧的第一个元素构造它。最小堆还包含表示数据元素帧号的额外字段。这种数据结构可以做必要的事情。


面试第四轮(1小时)

问题 1:用 O(n) 中最大的下一个整数替换数组的每个元素。
我做不到。我试过了,但没有点击。当您进入最后一轮时,这不是预期的。

问题2:反转链表的每k个节点。

做得很好,但最终没有被选中……。 🙁


本文由Vinay Khetan编译。我们将很快将 Vinay 对雅虎和微软的采访作为单独的帖子发布。维奈被微软选中。很多很多祝贺 Vinay 被选中。

亚马逊的所有练习题!