亚马逊面试经历 |设置 323(软件开发工程师 - 校外)
我在海得拉巴的亚马逊申请了校外软件开发工程师的职位。
第 1 轮(电话):1 小时
面试从我的介绍和我在当前公司的工作开始。然后他问了我两个编码问题:
- 问题 1:给定一个大小为 n 的数组。现在打印每个大小为 k 的帧的数组中不同元素的数量。
- 问题 2:给出一个二叉树和一个数字,比如 k。
打印树中的每条路径,路径中的节点总和为 k。
(路径可以从任意节点开始,到任意节点结束,即它们不必是根节点和叶节点;树中也可以有负数)
两周后,我收到一封邮件来进行面对面的面试。
第 2 轮 (F2F) : 1 小时
面试官非常友好。在进入房间之前我很紧张,但在与他交谈了一分钟后,我开始感到舒服。他从他的介绍开始,然后问我关于我自己以及我在当前公司所做的工作。
然后,他继续讨论编码问题。
- 问题1:给出一棵二叉树。您需要从根开始打印树中的每条路径,路径的节点之和等于给定数字k。(数字也可以是负数)
- 问题2:给定一个链表,其中每个节点都有两个指针,一个指向它的下一个节点,另一个是随机指针,指向链表中的其他节点。你必须克隆给定的链表。
Sol : 用 next 和随机指针克隆一个链表
由于对操作系统的讨论而出现的一些问题是:
Q1。什么是临界区问题,它是如何解决的?
Q2。什么是信号量?
第三季度。什么是比赛条件?
第四季度。什么是写锁,它的条件是什么?
问题 5。什么是线程和进程?
然后他问我是否有任何问题,然后让我等待这一轮的结果。
某个时间后我被叫到下一轮。
第 3 轮(F2F):1.25 小时
这一轮,有两个人在场,看起来都像是亚马逊的一些高层。他们只详细讨论了我在当前公司的项目。他们在这一轮中没有问任何其他问题。
第 4 轮 (F2F) : 1 小时
面试官从他的介绍开始,问我我的。然后他让我介绍一下我公司的项目。
然后他问了两个编码问题:
- 问题 1:正在设计一个浏览器,你必须在其中实现历史功能,它有两个功能,一个是获取最近的 100 个 url ( getHistory() ),另一个是更新最近的 100 个 url 列表,只要url 被命中( updateHistory() )。
- 问题 2:给定一个数组,它可以有四种类型:
(一种)。增加
(b)。递减
(C)。先增加后减少
(d)。先减少后增加
在不遍历数组的情况下,我们需要告诉它的类型。关于这个问题进行了长时间的讨论。
第 5 轮(F2F):1.5 小时
- 在详细讨论了这个项目之后,他给了我一个编码问题,我们也讨论了这个问题大约 45 分钟。
问题 - 有一个以字符串形式给出的数字。数字可以是任何长的。现在我必须告诉给定数字的更大数字,这也是一个回文。
Sol :给定一个数字,找到下一个最小的回文数
面试从我和面试官的介绍开始。
然后,他扫描了我的简历并开始询问我提到的项目。然后他告诉我选择任何一个项目并从头开始解释一切,包括我的角色、参与项目的人数以及每个人的角色。他还问我用于实施该项目的研究论文的标题,但我不记得标题,所以他问我研究论文中任何一位作者的姓名。我告诉他一个名字,他只在他的笔记本电脑上搜索了那篇论文。关于这个项目的讨论大约有 45 分钟。