亚马逊面试经历 | Set 243(2.5年经验)
编码轮次(1 小时):
1.螺旋遍历矩阵
2.将链表表示的两个数相加
面对面第 1 轮(技术 ~ 1 小时)
1. 自我介绍,简单介绍一下你目前在做什么项目?
2. 您在当前项目中面临的挑战是什么?
3. 给定一个连续的整数流。我需要找到流的中位数。我使用堆给出了解决方案。他对使用树的方法很感兴趣,在提示我能够使用树解决它之后。他被我的方法说服了
4. 设计一个数据结构,其中插入、删除和查找最小元素等操作应在 O(1) 时间复杂度内完成。我告诉他我已经完成了这个问题,所以他只是对逻辑感兴趣。
4. 设计一个数据结构,其中插入、删除和查找最小元素等操作应在 O(1) 时间复杂度内完成。我告诉他我已经完成了这个问题,所以他只是对逻辑感兴趣。
5. 给定 n 个非负整数表示一个二维高程图,其中每个条的宽度为 1,我需要计算下雨后它能够捕获多少水。
Input: arr[] = [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]
Output: 6
|
| || |
_|_||_||||||
Trap "1 unit" between first 1 and 2, "4 units" between
first 2 and 3 and "1 unit" between second last 1 and last 2
面对面第 2 轮(技术性 ~ 1 小时 10 分钟)
1. 自我介绍,告诉我你在职业生涯中做过的最具挑战性的项目。很多关于项目部分和我面临的挑战的讨论。
1. 自我介绍,告诉我你在职业生涯中做过的最具挑战性的项目。很多关于项目部分和我面临的挑战的讨论。
2. 给定一个未排序的数组,其中包含从 0 到 999 的唯一数字,数组的大小为 1000。在其中一个索引处,该元素已被其他元素替换。我需要找到原始元素。只需要逻辑。
3. 给出了一个中缀表达式,我需要评估这个表达式。我告诉他这是标准问题,所以他只是问我逻辑并要求我将中缀表达式转换为后缀表达式。
4. 给出一棵二叉树。他让我序列化和反序列化给定的二叉树。我给了他使用前序遍历并将元素存储在数组中并使用另一个数组来存储节点元素是叶节点还是内部节点的方法。他对这种方法深信不疑。然后他让我为相同的逻辑编写代码。
5.讨论我将使用什么数据结构来实现推荐引擎。例如,如果有人从亚马逊购买手机,应该推荐耳机、移动电源等。这是一个很好的讨论。
面对面第 3 轮(提高杠铃约 1 小时 30 分钟)
1. 再次询问雨水收集问题。我没有告诉他我在第一轮面试中已经做过这个问题。最终他知道我已经完成了这个问题。于是他又问了我一个问题。
2. 给定一个二维平面,并在该二维平面上给出由其 (x,y) 坐标表示的点数。所以我需要找到可以位于一条线上的最大点数。
答案:我使用散列给出了解决方案,我使用任意两个点计算斜率,现在如果斜率匹配,我将增加该特定斜率在哈希图中的计数。现在我将遍历哈希图并找到最大值。时间复杂度 O(n 2 )。
然后讨论如果斜率出现在“long double”类型中甚至不能存储的东西,那该怎么办。
3. LRU缓存实现。我告诉他我已经知道答案了。所以他问了我一个不同的问题。
4. 给定一个整数数组。我需要修改数组,以便数组的每个索引都包含除其自己的索引元素之外的所有元素的乘积。扭曲的是我需要在不使用除法(/)运算符的情况下做到这一点。我能够通过一点提示来解决它。
5. 给定二叉搜索树的后序遍历。他让我编写一个干净的代码来使用给定的后序遍历创建一个 BST 并返回 BST 的根。
6. 给定一个只能包含字母 [az] 的字符流。我需要找出是否存在重复元素并相应地返回真或假。他对最坏情况的时间复杂度感兴趣。
电话第 4 轮(招聘经理 ~ 1 小时)
1. 自我介绍,简单介绍一下你的职业背景。
2. 为什么离开之前的公司?
3. 为什么这么早就离开现在的公司?
4. 为什么选择亚马逊?
5. 你在整个职业生涯中做过的最具挑战性的事情是什么?给我实施细节,情况如何,您是如何处理的?
6. 告诉我一个情况,当你向你的经理提出解决问题的更好想法时,他不得不回去使用你的想法并重新做事。
7. 告诉我你的经理不同意你的想法的情况,为什么?
8. 给定一个排序和旋转的数组。我需要在这个数组中找到搜索给定的元素。预期时间复杂度为 O(log n)。
尖端
1. 练习用纸笔写代码。
2.不断尝试解决问题,他们一定会给你提示,你可以利用这些提示来解决问题。
3. 对面试官诚实。
亚马逊人在整个过程中都很友好。
非常感谢 geeksforgeeks 让一切变得简单。
亚马逊的所有练习题!