📜  亚马逊面试经历| 6个月实习(校外)

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

我在 11 月底通过推荐申请了 6 个月的实习。我想如果你通过推荐申请,只需要 1-2 天就可以从 HR 那里得到回复,但是在 2-3 天之后,当没有人联系我时,我以为我不会收到他们的回复。但两周后,我收到了关于在线编码回合的邮件。

第 1 轮:在线编码轮
有 2 个编码问题和 28 个 MCQ。

  1. 中缀到后缀的转换
  2. 很简单的字符串操作问题

我能够解决这两个问题。

两天后,他们告诉我现场面试的情况,我必须去亚马逊班加罗尔办事处。
面试那天,我去了办公室。还有大约70-80名其他学生。

第二轮:技术面试
这是 60 分钟的回合,并提出了 2 个编码问题。我完全解决了一个,部分解决了一个。我的面试官很酷很友好。虽然他没有经常微笑,但他让我觉得我们正在讨论这个问题。他从通常的关于你的问题开始,然后直接跳到编码问题。
一季度。你在地面楼梯上,你必须到达’Nth’楼梯。在任何楼梯上,您最多可以走“K”步。找出可以到达第 N 个楼梯的方式总数。 int countWays(int N, int K)
他向我解释了这个问题,然后通过一个示例测试用例进行了解释。然后让我先解释一下这个方法,如果他对这个方法满意,那么只有我可以编码。他告诉我他还会在他的笔记本电脑上记下一些事情。
首先,我给了他递归蛮力解决方案(因为这就是 CTCI 所说的)。然后他让我优化它。然后我给了他时间复杂度为 O(N*K) 和空间复杂度为 O(N) 的 DP 方法。然后他让我进一步优化它。我使用另一个变量来存储最后 K 个楼梯的总和,并增加第 i 个楼梯的值并减少第 (ik) 个楼梯的值。现在我的时间复杂度是 O(N),空间复杂度是 O(N)。我以为现在我可以编码了,但他再次要求我优化空间。然后我给了他 O(K) 空间队列解决方案。现在他对这种方法很满意,并要求我编写代码。他再次向我解释了他在编写代码时的期望。 (可读,模块化,缩进,有意义的变量名)。然后我写了代码,他检查了,很满意。
Q2。交换的最小字符串– http://https//leetcode.com/problems/smallest-string-with-swaps/
我很难想出蛮力解决方案,我告诉他。然后他给了我一些提示,在他的帮助下,我想出了一个蛮力解决方案。之后,我们进行了一些讨论,即蛮力解决方案是否总能给出正确的解决方案。在那之后,他让我优化它,我正在尝试,但他告诉我时间到了,如果我有任何问题。我只是问了他实习生的角色以及哪个团队正在招聘实习生。

15 分钟后,他们告诉我,我要移动下一轮。

第二轮:技术面试
这也是 60 分钟,问了 3 个编码问题。首先,他让我做一个简单的介绍。然后他问了我的实习和我的项目。然后他告诉我他在这一轮中对我的期望。他告诉我他会问2-3个问题,视时间而定,我需要先向他解释逻辑,然后编码。此外,请遵循良好的编码习惯。他告诉我他不会覆盖我写的代码,他会在他的机器上写出确切的代码(不确定他是否真的这样做了,但他正在他的笔记本电脑上打字)。
一季度。雨水收集问题
首先,给了他蛮力解决方案O(N^2)。他告诉我优化它。然后给了他leftMax和rightMax数组的方法。他说我现在可以编码了。在编写代码时,我确保保持干净,尽可能模块化,使用描述性变量名称。他看了我的代码,问了我几个问题,然后转向了第二个问题。
Q2。 https://www.geeksforgeeks.org/dynamic-programming-building-bridges/ 因为我已经做了这个问题,我告诉他我只需要在数组中找到LIS。他告诉我该怎么做。我给了他 O(N^2) 的方法。他说没关系,让我写代码。
Q3。这是一个简单的问题。他问我有一块地,里面有一个湖。我需要找到湖的大小。我告诉他我可以用 1 表示土地,0 表示水,然后当我遇到任何 0 时应用 DFS。然后他问了关于 DFS 的问题以及我将如何做到这一点。我向他解释了我的方法,然后他让我为它编写伪代码。
然后他问我有没有什么问题。我问了他一些问题。

然后大约 20 分钟后,HR 打电话给他并祝贺我。

面试建议

  1. 无论剩下多少时间,请确保您的代码遵循良好实践。我记得有一次我以为我会超级快地写代码,然后向他解释代码,但它不是那样工作的。他们将保留您编写代码的论文,然后再进行审查,以防他们对您有任何疑问。因此,请确保您所写的内容清晰易懂。你的代码、你的逻辑、你的图表、你的测试用例。
  2. 确保您正在进行讨论而不是面试。确保以一种看起来像讨论的方式解释你的方法和你对他/她的问题的回答。如何?像你知道的那样解释事情,不要只是猜测,解释你为什么要考虑递归解决方案。
  3. 始终在互联网上查找您问题的答案。下一个面试官可能会问你。