大家好,亚马逊最近访问了我们SDE的校园招聘。他们通常是第一家或第二家访问我们校园的公司,但这一次,他们来的时间要晚得多,这给了我很多准备时间(我所说的准备是指通过g4g) 我在准备亚马逊之行时玩得很开心,在面试过程中我玩得很开心。整个过程持续了两天,这绝对是一个人所能拥有的最全面的面试场景之一。面试官们都很冷淡,我在整个面试过程中都感觉很舒服。
让我和你分享我的经验。
第一轮(1小时30分钟)(Apti+编码) 这是亚马逊的第一轮标准竞赛。
来自C/C++/Java输出、操作系统、DS、算法、时间和速度、混合等的20个apti问题:- 只要你能解决编码问题,你就应该没事。
问题1) 给定一组任意顺序的时间间隔,将所有重叠的时间间隔合并为一个时间间隔,并输出只应具有互斥时间间隔的结果。为了简单起见,将区间表示为整数对。
问题2) 约瑟夫斯问题 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事先未知。
2) 一些问题,归结为 在已排序的旋转数组中查找最小元素。 同样的代码,以及所有角落的案例。确保你在第一次尝试时就写下了所有的关键案例。
3) 在现实生活和计算机中使用树木的例子。这是一场非常热烈的讨论。他不接受“家谱”作为答案,声称如今的家庭不再遵循树的结构。
一个问题引出另一个问题,有些问题是我说的。
4) 接下来的几个问题是关于图表的。
5) 给定三个字符串A、B和C。编写一个函数,检查C是否是A和B的交错。如果C包含A和B的所有字符,并且保留了单个字符串中所有字符的顺序,则称C是A和B的交错。
6) 所以,在所有这些之后,他想要我所有的项目都有一个ELI5版本(就像你对一个孩子解释的那样),以及我用于这些项目的技术堆栈。
这意味着,我给出的任何答案对他来说都“太复杂”,我必须简化它,而不使用“不知何故”的同义词。再一次,超级有趣。
我给了他一个字母不重复的解决方案。
然后给出了一个解决方案,在必要时克隆并检查字符串,他想要一个更好的方法,并给了我相当多的时间。
然后我给出了一个DP解决方案,他对此很满意。
在这之后,轮到我问他问题了。我又问了一大堆问题,我得到了一些非常好的答案。
最后,我们在结束采访时愉快地谈论了斯诺克,以及金奈中心如何拥有一张全新的桌子
2小时(最后一轮)~。
除了电话交谈,我们还使用了一个在线合作者,让他看到我在笔记本电脑上写的代码。
我们先做了一些介绍(原来,我们来自同一所学校),然后做了一般性的介绍,“跟我说说你自己”。
他没有我的简历,他希望我确保这不会影响任何事情。
很多问题,比如“举个例子,你和你的队友在一个项目中有分歧,你是如何解决的”
“给我一个你在解决冲突方面表现出一定领导力的地方”,还有许多类似的问题。
然后我们继续讨论技术问题。
1) 给定一个巨大的数组,它存储在100台计算机上,无法将它们全部聚集在一起,求出上述数组的中值。
我已经看到了2而不是100的问题,当我立即告诉他答案时,这是显而易见的,所以我们继续下一个问题。
2) 给定一个棋盘、一个起始位置和一组棋步数,求出骑士在棋步完成后留在棋盘上的概率。处理所有角落的情况,比如在第一步中,骑士走出棋盘,穿越结束。
我必须在协作者身上对整个过程进行编码,习惯上我一直按ctrl+s,因此它一直断开连接*脸掌*
他真的很着急,但他仍然确保回答了我向他提出的所有问题。
但他对我的解决方案不太满意,给了我时间改进,并说他会在5分钟后回来,但他没有
一般提示:
1) 做好准备,并专注于DBMS和OS。 2) 要自信,要互动。 3) 当你被要求提问时,要问很多问题。这是一个向他们展示你对公司感兴趣的好时机,你的想法超越了公司的编码方面。
我的一些问题是:
a) 是什么让亚马逊比其他类似的电子商务网站更以客户为中心?
b) 程序员如何帮助客户真正感受公司?因为编码人员毕竟只执行他们的经理告诉他们的。
c) 鉴于这是一次非常艰难的面试,你在制作中实际看到了多少这样艰难的问题?
4) 拥有一份好的简历可以帮助你指导面试。
提问时尽量保持原创性
祝你一切顺利
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。