我在德里接受了亚马逊 Kindle 框架团队 SDE-I 职位的面试。我在诺伊达三星担任项目负责人,在软件行业拥有 1 年 10 个月的总经验。
第 1 轮:书面
- 打印给定二叉树的边界遍历
- 将链表表示的两个数字相加
- 通过放置空格(零或一)打印给定字符串的所有可能排列
大约有80名候选人,本轮分配的时间为1小时。我能够在短短 20 分钟内正确编写所有 3 个代码,并且是第一个进入第二轮的候选人。第二轮:问题解决(F2F)
- 两个有序数组的中位数
- 大小相等
- 不同尺寸
- 给定布尔矩阵中全为 1 的最大尺寸方形子矩阵
第三轮:设计和数据结构(F2F)
- 行为问题:
- 告诉我你在三星的当前项目。
- 作为项目负责人,您的职责是什么?
- 你在三星做得这么好,为什么还想加入亚马逊?
- 最后进行了 15 分钟的讨论,讨论我遇到的最困难的问题以及我如何用我的编码技能和知识来解决它。
- 给定一个外星语言的排序字典,找到字符的顺序
- C++ 中的动态绑定和虚拟函数是什么意思?/
- 关于互斥体、信号量、ISR(中断服务程序)、死锁的讨论。/
面试官对我的编码技能印象深刻,并以一种认可的感觉握手。
第 4 轮:招聘经理 (F2F)
招聘经理介绍了自己,并告诉我,到目前为止,我一直做得很好。然后他冲我笑了笑说“希望你不要在这一轮中搞砸了”。
(1) 哪种排序算法最快,为什么你更喜欢它?
在回答时,我在“如果有数百万个数字……”之间说,他抓住了我的特定词“百万”,因此接下来的两个问题自己找到了方法。
- 在一个拥有数百万人的城市中,我想根据他们的年龄对他们进行排序。你会使用哪种排序算法,为什么?有一个拥有数十亿颗恒星的星系,并且给出了每颗恒星与太阳的距离。我想要离太阳最近的 100 万颗恒星。你会使用哪种数据结构,复杂度是多少? (它是在数组中查找 K 个最小元素的变体)
- 查找二叉树的两个给定键之间的距离 <
他仔细检查了整个代码是否有任何可能的错误,并发现它是完美的。- 关于 SQL 中的内连接和外连接的讨论。 https://www.geeksforgeeks.org/inner-join-vs-outer-join//
然后他站起来,笑着和我握手,说:“干得好,伙计! “ 离开。
第 5 轮 : Bar Raiser (F2F)
- 设计一种算法,通过给定词典的有效词将一个词转换为另一个词。 (这显然是编辑距离问题的变体,但在编辑距离中我们不关心中间词是否有效)
这一轮只问了这个问题,讨论持续了大约45分钟。所有的功劳都归功于 https://www.geeksforgeeks.org/ 团队为编码人员提供了如此鼓舞人心和出色的平台。继续加油,加油!
给在亚马逊面试的其他候选人的建议:
- 尝试编写整洁干净的代码,没有任何切割或麻烦,注意所有边界情况。
- 在你的答案中要非常准确和明确。继续编码,一切顺利!
亚马逊的所有练习题!