📜  亚马逊面试经历 |设置 155(校内)

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

亚马逊面试经历 |设置 155(校内)

最近,亚马逊作为我们校园招聘的一部分来到了我们的校园。

线上回合:

1) 给定一个由 0 和 1 组成的链表,对列表进行排序。
2)给你三个数字。每个数字由一个链表表示。编写一个返回总和列表的函数。
示例:1->2->3 + 2->1->3 + 3->2->1 = 6->5->7。

这是根据黑客等级进行的。测试时间为 1.5 小时
大约有 22 个与 OS、OOPs C 输入/输出问题相关的 MCQ。 GeeksQuiz 足以回答这些问题。

他们筛选了 25 人参加面试。
总共有4轮技术轮次。每一轮都是淘汰赛。在每一轮面试中,面试官都会要求你解释算法并在纸上实现它。

第一回合:

从一个基本的“告诉我关于你自己”的问题开始。这一轮只是为了检验你是否真的有能力。他问了我三个问题,并要求我在纸上实现所有这些。
1) 给你一个数组和一个数字 c。输出总和等于c的所有对a,b。预计 O(n)。

2)给你一个由链表表示的数字,加一。
我告诉他明显颠倒列表并添加一个。但他希望我在不使用递归和逆向的情况下做到这一点。

3)给你一个排序数组,在其中找到多数元素。如果没有这样的元素输出-1。您必须在单个 o(logn) 操作中执行此操作。
扩展第三个问题:如果数组没有排序怎么办?提供一个 o(n) 解决方案。

第二轮:

这是大约2个小时。虽然只有两个问题,但面试官正在检查我们是否对所有数据结构有足够的了解。

1) 给你一个长数组和窗口大小 w。您只能查看当前在窗口中的元素。窗口从最左侧开始,一次向右移动一个位置。您需要在当前窗口中输出最少的数字。
讨论了所有可能的方法。从蛮力开始,o(nw) 到 o(nlogw) 使用堆,BST。他要求我实施它们。但他对 o(nlogw) 解决方案并不满意。他希望我给出 ao(n) 解决方案。最后经过一些提示后,我使用双向链表解决了它。

2)给你一棵二叉树。打印从根元素开始的垂直顺序遍历。

第三轮:

从“解释你的一个项目”这个问题开始。该项目几乎没有提出技术问题。
很少有人问关于操作系统、多线程与多处理的问题。他还让我告诉我是否实现了任何使用多线程的程序。很少有人问关于信号量和互斥量的问题。
本轮只有一道编码题
1)给定一棵非常大的二叉树,返回给定树中最大 BST 的根节点。预计单次遍历解决方案。在纸上实施它并不比预期的困难。

第四轮:
到这个时候,工作机会几乎确定了。
他问我的项目问题。他让我在一篇论文中实现我项目中的一些算法。
1)使用oops实现一个图和一个图遍历。
2)给定一个不可变(不可编辑)的链表和一个数字 k,删除列表中所有出现的数字。
很少有人问关于 OOP 的问题。

他们在 20 分钟后给了我结果😀

我要感谢 geeksforgeeks,它极大地帮助了我获得安置。

相关练习题

多数元素

亚马逊的所有练习题!