📜  亚马逊面试经历|第 273 组(校内)

📅  最后修改于: 2021-11-10 06:39:13             🧑  作者: Mango

我想与您的听众分享我的亚马逊面试经验(实习)。

第一轮(在线编码轮):
这是对 Hackerrank 的 90 分钟测试。它有 20 个 MCQ 和 2 个编码问题。 MCQ 来自时间复杂度、不同排序算法、dbms、os、3-4 谜题和 apti、代码输出等主题。

MCQ 的负面标记为 0.50。

CSE,IT,ECE的学生被允许,大约有160名候选人。

编码问题:
1. 找出字符串的第一个非重复字符。

2.有一个n阶方阵,从1到n^2按行大数填充。在矩阵的螺旋遍历中找到第 K 个元素。
示例:假设 n=3 且 K=5。
矩阵:
1 2 3
4 5 6
7 8 9

输出:9

我解决了两个编码问题并尝试了 16 个 MCQ 并获得了下一轮的资格。解决至少一个编码问题以进入下一轮非常重要。

第二轮(个人面试-I):

时间:40-50分钟。本轮选拔了31名候选人。

首先是告诉我关于你自己。然后面试官问我我的 JEE(mains) 等级以及我知道什么数据结构。她问了我一些基本的树问题,比如什么是树,什么是 bst,有多少种遍历类型并给它们命名。接下来,她给了我这个问题:

1. 给定一个元素数组,判断该数组是否表示 BST 的前序遍历。

我想了几秒钟,然后给了她 n^2 的逻辑。在她让我优化之前,我告诉她我可以尝试优化它。
然后在思考了几分钟后,我告诉她我的 O(n) 逻辑。
在听完我的方法后,她让我编写代码。我一口气写了代码,没有任何错误。在检查代码是否无错误后,她问我代码的时间复杂度和空间复杂度。

之后面试官问了我什么是临界区、互斥量、信号量、虚拟内存、缺页、防止死锁的方法等操作系统的理论问题,然后她做了一个简单的表,让我为它写SQL查询这很容易。她问我什么是 DBMS 中的索引,其类型之间的区别以及我编写的查询是否区分大小写。

接下来面试官问我是否知道克隆链表问题。

我说是。于是面试官换了一个问题。

2. 给定一个包含负数和正数的数组,找出最大和的连续子数组。
我告诉面试官我的方法(修改 Kadane 算法)。她让我写代码。我写的代码没有任何错误。


第三轮(个人面试-II):

时间:80-90分钟。本轮有8名候选人入围。

面试官首先翻阅了我的简历,问了我最近的项目。然后他问我是否对树木感到满意。我说是。他问我:

1. 纵向总和
我告诉他方法,他让我写代码。我写的代码没有任何错误。

然后他问了我理论问题。从虚拟内存概念开始,接下来他写了一段代码,问我有没有错误。然后他问了基于 malloc/calloc、new 运算符等的 C/C++ 问题,一个关于异常处理的棘手问题。还有很多我不记得的其他理论问题。

2.然后他给了我这个问题:
有 n 人需要做一些任务。在这 n 个人中,有 x 个人需要钥匙才能开始工作。每单位时间内,无数的钥匙一一扔在人们面前。一个人拿起钥匙所需的时间是一个单位时间。此外,面试官提到的条件,例如某些特定的人只能在其他特定的人完成其任务后才能开始。一个人完成任务所需的时间为一个单位。他让我找出所有人完成任务的最短时间。

思考了几分钟后,我告诉面试官我在图中使用拓扑排序的方法。然后他让我详细解释拓扑排序。然后他转向另一个问题。

3. 你在森林里,有很多小路。你需要离开森林。你选择哪条路?
在图中找到源节点和目标节点之间的最小距离是一个问题。
我告诉他我的方法,然后他让我解释 dijkstra 的算法。然后面试官问我dijkstra算法和floyd-warshall算法的区别。然后他问了我关于 prim 算法和 kruskal 算法的问题。

然后他又给了我另一个有趣的问题。
4. 对于二叉树的每个节点,您将获得节点 id 及其子节点的 id 总和。查找根节点的节点 id。

几分钟后,我想出了一个错误的方法。当我告诉面试官这件事时,我明白我错了。然后他告诉我要关注 id 的总和。然后不到一分钟,我告诉他另一种方法。他问我为什么这样做,我解释了他,他很满意。

之后面试官问我有没有什么问题要问他。最后,他再次问我关于我使用 Alexa 的一个项目。

保持冷静会帮助你更快地想出正确的解决方案,如果你有任何疑问,可以向面试官提问,他们非常友好。练习 geeksforgeeks 的问题。这对我帮助很大。谢谢各位极客。

亚马逊的所有练习题!