📜  亚马逊面试经历| 197(校内实习)

📅  最后修改于: 2021-11-15 08:15:41             🧑  作者: Mango

大家好,亚马逊最近访问了我们为 SDE 招聘的校园。他们通常是第一个或第二个访问我们校园的公司,但这次他们来得晚了很多,这给了我很多时间准备(准备我的意思是通过g4g)
我在准备亚马逊访问时玩得很开心,并且在面试过程中真的很开心。这个过程跨越了两天,绝对是有史以来最全面的面试集之一。面试官真的很冷,我在整个面试过程中都感觉很舒服。

让我与你分享我的经验。

第一轮(1 小时 30 分钟)(Apti + 编码)
这是标准的亚马逊第一轮比赛。

来自 C/C++/ Java输出、操作系统、DS、算法、时间和速度、混合等的 20 道 apti 问题:-
只要您能够解决编码问题,就应该没问题。

Q1)给定一组任意顺序的时间间隔,将所有重叠的间隔合并为一个,并输出应该只有互斥间隔的结果。为简单起见,将区间表示为整数对。

Q2) k = 2 的约瑟夫斯问题

不允许使用 IDE,因此请放心使用 HackerRank 编辑器进行编码。那里的错误报告有点难以理解,因此请确保您对此感到满意。

根据分数在4个类别中选出了相当多的人。

第二轮:(1 小时 15 分钟)手/纸编码轮。

1) 在给定的直方图中找到可能的最大矩形区域,其中最大的矩形可以由许多连续的条形组成。为简单起见,假设所有条具有相同的宽度且宽度为 1 个单位。
他们想要一个比 n^2 更好的解决方案

2) 完全二叉树的边界遍历。
他们想要一个高效的代码,它只遍历树一次。
他们从我们那里得到了算法,如果他们满意,就要求我们在纸上写代码。

我的很多想出高效算法的朋友都没有通过这一轮,因为我相信他们没有得到足够的关注 🙁

亚马逊的招聘政策是宁可错过一个好的候选人,也不愿雇佣一个坏的候选人,这在这里很明显。大约20人通过了这一轮(他们也考虑了本轮的上一轮分数(在一定程度上)

这是真正的挑战开始的地方。


F2F 1:(1 小时 30 分钟)

我们从一些聊天介绍等开始。
然后我们直接转到了这一轮我被问到的唯一一个技术问题,这不是一个特别容易的问题。

给定一个二维数组,找到其中的最大和子矩阵,并显示它。

需要工作代码,然后使用几个输入进行测试,因此无法逃脱。

F2F 2(经理回合 ~1 小时 45 分钟)
我们开始讨论我的项目。他想要一份详细的描述以及所面临的所有技术问题和用于解决这些问题的解决方案。

这样持续了半个多小时。

然后他给了我几个关于树的问题,其中一个是找到节点的垂直总和,给定一棵树,以及相同的工作代码。

关于数据库管理系统的问题,以及我项目中的一些其他技术问题。

然后是更多的问题,我现在不记得了。

然后轮到我问他问题了。他真的很喜欢我问他的问题。

F2F 3:高级数据结构和算法回合。 (~1 小时 30 分钟)

由于各种原因,这很容易成为我经历过的最愉快的采访。

开始时进行了一次小型讨论,然后是“请介绍一下您自己”。

1) 第一个问题是,“什么是树?”我说,“当人们想到树时,他们只会想到二叉树,但树可以有两个以上的孩子……等等”

然后他告诉我,他所有的问题都是从我对他之前问题的回答中给他的任何提示中得出的。

所以接下来的半个小时都花在了 n 叉树上。

n 元树的序列化。

n 元树的序列化,其中 n 事先未知。

2) 一些问题,简化为在排序旋转数组中找到最小元素。
代码相同,以及所有极端情况。确保您在第一次尝试时编写了所有极端情况。

3) 在现实生活和计算机中使用树木的例子。这是一场非常热烈的讨论。他不接受“家谱”作为答案,声称现在的家庭不再遵循树状结构。

一个问题引出另一个问题,有些地方我说的是图表。

4) 所以接下来的几个问题是关于图表的。

5)给定三个字符串A,B和C.编写一个函数,检查是否C是A和B.的C交织被说成是交织A和B,如果其包含的所有字符的A和B的所有字符和顺序在单个字符串被保留。

6) 所以,毕竟,他想要一个 ELI5(像孩子一样解释)版本,用于我所有的项目,以及我为它们使用的技术堆栈。

这意味着我给出的任何答案对他来说都“太复杂了”,我必须简化它,而不使用“不知何故”的同义词。再次,超级好玩。

对于字母不重复的情况,我给了他一个解决方案。

然后在必要时通过克隆和检查字符串给出了一个解决方案,他想要一个更好的方法,并给了我相当多的时间。

然后我给了一个DP解决方案,他很满意。

之后,轮到我问他问题了。再次,一堆问题,我得到了一些非常好的答案。

最后,我们以关于斯诺克的精彩谈话结束了采访,以及钦奈中心如何拥有一张全新的桌子🙂

最后一轮(电话)~2 小时。

除了电话交谈,我们还使用了一个在线合作者,让他看到我在笔记本电脑上写的代码。

我们从一些介绍开始,(原来,我们来自同一所学校)和一般介绍,“告诉我关于你自己”。

他没有我的简历副本,他希望我确保这不会影响任何事情。

很多问题,比如“给我一个例子,你和你的队友在一个项目中发生了分歧,以及你是如何解决的”

“给我一个你表现出一些领导才能来解决冲突的地方”,还有许多其他类似的问题。

然后我们继续讨论技术问题。

1) 给定一个存储在 100 台计算机上的巨大数组,无法将它们放在一起,请找到上述数组的中位数。

我已经看到了 2 而不是 100 的问题,当我立即告诉他答案时,很明显,所以我们继续下一个问题。

2) 给定一个棋盘,一个起始位置,以及一定数量的走法,找出棋子在走完之后留在棋盘上的概率。处理所有的极端情况,比如如果在第一次走时,骑士走出棋盘,遍历结束。

我不得不在合作者身上编写整个代码,而且我习惯性地一直按 ctrl+s,因此,它一直断开连接。 *面掌*

他真的很着急,但他仍然确保他回答了我问他的所有问题。

但是他对我的解决方案不太满意,给了我时间改进并说他会在 5 分钟内回来,但他没有 🙁

一般提示:

1) 做好准备,同时专注于 DBMS 和 OS。
2)自信,互动。
3)当你被要求时,问很多问题。这是向他们展示您对公司感兴趣的好时机,并且您的想法超出了公司的编码方面。

我的一些问题是:

a) 是什么让亚马逊比其他类似的电子商务网站更加以客户为中心?

b) 程序员如何影响客户对公司的实际感受?因为编码人员毕竟只执行他们的经理告诉他们的事情。

c) 鉴于这是一次如此艰难的采访,您在制作过程中实际上看到了多少这样艰难的问题?

4) 一份好的简历可以帮助你指导你的面试。

尝试对您的问题保持原创

而且,一切顺利😀

亚马逊的所有练习题!