📜  亚马逊面试经历 | SDE-1(校外)

📅  最后修改于: 2022-05-13 01:58:34.929000             🧑  作者: Mango

亚马逊面试经历 | SDE-1(校外)

SDE 的亚马逊面试体验 - 1 Off Campus Drive Hyderabad Location。
2019年过去了。

第一轮:(在线编码轮)

这是一个 Hackerearth 测试,它由 20 道 MCQ 组成,主要是 DS、OS、CN 和 OOPS 以及少量输出题和 2 道编程题。

  1. https://leetcode.com/problems/reverse-string-ii/
  2. https://leetcode.com/problems/course-schedule/

以上回合为90分钟。一天后,我收到了 HR 发来的邮件,通知我入围了现场面试。

第二轮:(面对面面试)

在这一轮中,提出了 2 个问题,我必须在 70 分钟内回答这些问题,并在纸上为它们编写代码。

  1. 第一个问题是用 K 的大小反转链接列表。 https://www.geeksforgeeks.org/reverse-a-list-in-groups-of-given-size/

2. 给定一个数组,通过删除其中的 2 个元素,将数组分成三个子数组,使得所有三个子数组的总和相同。 O(n) 时间复杂度和 O(1) 空间复杂度。例如。 A->[1, 1, 1, 4, 2, 1, 5, 3] 输出- [1, 1, 1] [2, 1] [3] 在这里如果我们删除 4 和 5 我们留下 3 个子-具有相同总和的数组。

第三轮:(面谈)

在这也问了 2 个问题,我还必须在纸上为它们编写代码。

1. 给定一个字符串,打印包含偶数个元音的最大子字符串。O(n) 例如。 S-> aqwrteakjeaghev , answer->aqwrteakje 因为它包含 2 'a' 和 2 'e'。第二个在同一个问题中,如果多个子字符串可能具有相同的长度,他希望我打印所有子字符串。

2. https://www.geeksforgeeks.org/minimum-number-platforms-required-railwaybus-station/

第四轮:(面谈)

面试官首先讨论我目前的个人资料工作,并简短讨论我的项目(大学项目)。然后他让我设计一个如何使用负载均衡器维护服务器负载的算法。(基本上无法回答,他想回答类似循环类型算法的问题。)[这个问题是根据我目前的工作提出的]

现在他跳到编码问题。

  1. 给定由 BST 组成的动态数据(即节点在用户输入新细节时不断添加),他希望我将该 BST 转换为完整树。[在大约 10-15 分钟后对此进行健康讨论,我给了他解决方案像在 AVL 中一样进行旋转,最终他同意了一个解决方案,该解决方案包括在 Batch 基础上运行的按顺序。]。然后他告诉我编写以树为输入并通过将其更改为完整树来返回根的函数.
  2. 其次,他要求给定一个数字“n”,打印该长度可能包含多少个包含“(”或“)”的有效括号字符串。我告诉它一个加泰罗尼亚数字的应用程序然后他要我编写一个代码来生成第 n 个加泰罗尼亚数字而不使用公式基本上他希望我编写它的动态版本。 [https://www.geeksforgeeks.org/program-nth-catalan-number/]

幸运的是,我能够在这一轮中编写这两个代码,毕竟 3 个现场轮次 HR 告诉我,我还有 1 轮,即 Bar Raiser 轮,她将通过邮件分享详细信息。

第 5 轮:(提高标准)[视频通话]

这一轮是一个非常资深的人,有15年以上的经验,面试从他的介绍开始,然后是我的介绍。然后他问我在我现在的团队中的角色,并希望我解释一个我执行的事情与我目前的角色完全不同的情况。[这基本上是一个行为问题,所以根据那里的领导原则回答这样的问题.]

然后他跳到编码部分。

  1. 给定一个链接列表形式的数字,我们必须在该数字上添加一个并相应地更新链接列表。例如。 123 像 1->2->3 一样存储,将 1 添加到 123 它变成 124,因此我们必须将列表更新为 1->2->4。 O(n) 时间和 O(1) 额外空间,无需递归即可反转。
  2. 给定一个歌曲播放列表,我们必须改组该播放列表。[基本上是 https://www.geeksforgeeks.org/shuffle-a-given-array-using-fisher-yates-shuffle-algorithm/ 的应用程序]

2 周后,我接到 HR 的电话,说亚马逊正在为我发布 SDE1 的报价。

一些技巧:

  1. 在所有轮次中,您都会被要求编写生产级代码,因此请为此做好准备。[但是在前两轮面对面的时候,如果您的代码一次不完美,并且面试官发现了 1、2 个可能会失败的极端案例它你可能有机会纠正它,这一切都取决于面试官不确定第三轮,因为在我的情况下,我能够一次编写完美的代码]
  2. 在任何一轮中,如果你卡住了,请与面试官讨论,因为他们肯定会帮助你。
  3. 但是在最后一轮,即使用 BAR Raiser 时,请确保编写完整的代码,而且您的代码应该准备好生产,即如果他/她能够找到您的代码中失败的任何案例,那么他/她将有可能被拒绝只看了你的代码,然后说好吧,今天有什么问题要问我并完成你的面试,所以在提交给他之前一定要写一个完美的代码。 [我的一位朋友因为无法完成代码而在 Bar Raiser 被拒绝]