📌  相关文章
📜  实习生 + FTE 的亚马逊面试经验

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

实习生 + FTE 的亚马逊面试经验

亚马逊今年访问了我们的大学。他们目前正在进行大规模的招聘热潮,任何具有良好知识的人都可以参与其中。这是我的全部经历。

在线测试:这是一个 3 小时的在线测试,包括代码输出、调试、行为、能力和编码问题。

  • 这些问题从简单到中等难度。时间管理比你的编码能力更重要。
  • 有 2 个编码问题,您需要解决这两个问题。

共有67个面试入围名单。我就是其中之一。

面试轮次:

第 1 轮:这是在亚马逊拥有超过 6 年经验的 SDE 2。

  • 她问的第一个问题是所有亚马逊采访中最棘手的。问题是:给你一个数字,大到你需要一个字符串来存储它。现在,您需要找到下一个更大的回文数。我以前从未见过这个问题。我继续讲述一种具有 O(n) 时间复杂度的方法,其中 n 是字符串的长度(提示是从中间遍历字符串)。她也要求密码。我试过了,但我的方法有很多边缘情况。 45分钟,还没完。
  • 她转到下一个问题。这是一个简单的“骑士在棋盘上从一个位置移动到另一个位置所需的最小步数”问题。我能够在一秒钟内回答。她让我回到第一个问题。她真的很有帮助,并且正在写下我想管理我的边缘案例的任何内容。我的代码仍然有些不完整,但她承认这是一个棘手的问题。我被选中进入第二轮。

Round 2:这也是SDE 2。他很冷静,让我先自我介绍。之后,他介绍了自己,然后,我们开始提问。

  • 第一个问题是“找出数字流中的中位数”。
  • 第二个是“在数组中找到最大和,这样你就不能添加替代元素”。
  • 第三个是“找到你可以通过买卖股票获得的最大利润(你可以卖/买的次数没有限制)”。我能够在 15 分钟内以最佳的时间和空间复杂度通过代码解决所有这些问题。
  • 他转到第 4 个问题:您可以对数组进行 2 次操作:更新任何索引或查找索引范围内的最大值。讨论它的时间复杂度。这是一个分段树解决方案,因为我知道分段树有助于范围查询,但我对它们了解不多。我仍然以某种方式尝试为他提供最佳方法,因为我知道合并排序,我们只需要存储所有拆分的数组状态。他对我的解决方案印象深刻,因为它非常接近一棵分段树,老实说,我也是。我认为我无法想到那个解决方案。他没有询问代码,因为他知道我对分段树知之甚少,并敦促我也了解它们。
  • 然后,令我惊讶的是,他转向了第五个问题。这也是一个很好的。给定一个数组,其中的所有数字都成对出现,并且所有重复的元素都彼此相邻。但是,一个元素是3,它们也是在一起的。我们需要找到那个号码。我首先想到了 XOR 方法,但他期望的是对数时间复杂度和 O(1) 空间复杂度。在他的一个提示下,我也能够想出那个解决方案(它是:你会做什么来验证数组中是否存在三元组)。如果您想要另一个提示,请考虑二进制搜索。这是一次很棒的采访。我给它带来了很多乐趣。我被选为管理轮。

第三轮:这也是一轮编码。它与 SDE 3 一起使用。

  • 他让我将一个链表分成奇数和偶数两半,而不使用额外的空间。我把它编码出来了。然后他让我使用一个函数,因为现在他想根据素数和复合拆分链表。也这样做了。然后,他让我设计一种方式,让客户端可以编写拆分链表的条件,而不影响我正在编写的代码。我为此使用了接口。他很满意。
  • 然后他问我关于我的项目。我的实习。他非常关注 STAR 范式,谢天谢地,我在面试前一天阅读了这些范式(情况、任务、行动和结果)。总的来说,这只是另一轮管理轮,到处都有一些简单的问题。最终的选拔名单来了,上面有我的名字,还有其他 8 名学生,为期 6 个月的实习 + FTE。那是我一生中最快乐的日子之一。

对于任何想要破解这些公司之一的人,我建议您熟悉数据结构和算法。 GfG帮了我很多。我记得我当时在想,亚马逊这样的公司被选中的人一定非常出色,但现在我自己是,我会说这并不难。尽你所能。一些实用的技巧将是善于编写你的想法,调试你的代码,并且毫不犹豫地向面试官寻求提示。良好的沟通技巧也有帮助。

祝你好运!