筛选回合:亚马逊的筛选回合有多种问题:
- 调试题:非常非常简单,你不需要为此做准备
- 编码题:一共3道题,1道简单题,2道中级题。我不记得这些问题了。
- 工作风格评估:它基本上是一个 MCQ 来评估您的行为和态度
- 能力问题:从 GeeksForGeeks 准备
第一轮:面试官是SDE1,很友善。他自我介绍,让我做自我介绍。在介绍之后,我们直接进入了编码问题。他问了两个问题:
- https://practice.geeksforgeeks.org/problems/rotten-oranges2536/1。一开始,我无法识别是Multisource BFS的问题,他给出了一些提示,然后我应用了Multisource BFS来解决它。他让我写代码。
- https://practice.geeksforgeeks.org/problems/special-stack/1。我以前看过这个问题。所以我轻松解决了它。我必须编写完整的代码。他似乎对我的代码很满意。
然后他问我有没有什么问题要问他。借此机会表达您对公司的真正兴趣。前一天晚上我已经准备好回答这个问题了。所以我问了这样的问题: “亚马逊的工作量如何” , “SDE1 晋升到 SDE2 需要多长时间” , “你在哪个办公室工作” , “你加入亚马逊的最初几天的体验如何? ” 。面试很顺利。在 1 小时的讨论中,我设法与面试官建立了联系。我知道我会被选中参加第 2 轮。
第 2 轮:在第 2 轮中,有两个人都是 SDE1。这一轮就像任何典型的面试一样开始;面试官自我介绍,让我做自我介绍。然后他们问了一个行为问题:“如果你想在最佳解决方案(但不可行的解决方案)和不合标准的解决方案(但可行的解决方案)之间做出选择,你会选择哪一个。通过叙述您生活中不得不做出此类决定的事件来提供支持性证据”
然后我们从编程问题开始
- https://www.geeksforgeeks.org/place-k-elements-such-that-minimum-distance-is-maximized/。我首先讨论了这个方法。他们似乎对这种方法深信不疑,所以他们让我编写代码。编码后,他们甚至让我使用示例来浏览代码。他们很满意。
- “给定一个随机数组,你会使用什么算法对其进行排序?”我说, “有几种排序算法可以对随机列表进行排序,每种算法都有其优缺点。我们必须为给定的情况选择正确的算法” 。然后他问我一些流行的排序算法的时间复杂度。然后他们问, “如果数组中的所有数字都在 [0,100] 范围内,你会使用哪种排序算法” 。答案是计数排序。
这两道题之后,面试就正式结束了。他们问我是否有任何问题要问他们。我问过这样的问题: “亚马逊的工作量如何” , “如果您不熟悉分配给您的团队的项目中使用的技术,您将如何处理它” , “您是否注意到其中的任何缺陷?我在解决编码问题时传达我的想法的方式” 。我们进行了很好的讨论。他们对我很满意。我知道我会被选中参加第 3 轮。
第三轮:这次面试官是高级软件工程师(SDE3)。他很酷。当他接受我的采访时,他实际上穿着百慕大短裤,哈哈。我觉得他的谈话比其他轮次的其他面试官更吸引人。难怪他是SDE3。
- 采访以一段随意的谈话开始。他向我讲述了他的历史,以及他在亚马逊工作的团队等。我们花了 15 分钟随意交谈。我看得出他很享受和我说话。然后正式的面试开始了。他说他要评估我的行为和解决问题的能力。他让我选择是先想要行为问题还是编码问题。
- 我和他进行了一次引人入胜的谈话,我不想打破这种连胜纪录。所以我说, “我想先问行为问题” 。然后他问了这里列出的一些标准问题 https://www.amazon.jobs/en/landing_pages/in-person-interview
- 然后他问了一个编码问题: “给定一个 html 文档,检查标签的层次结构是否有效” 。我从堆栈的想法开始。但他暗示 Tree 可能是一个更好的数据结构。然后我以树的形式表示标签的层次结构,并向他解释我将如何解决它。我之前没有解决过类似的问题,所以我基本上是在探索如何解决它们。我不知道如何解决它。我无法完全解决它。我只是绕着灌木丛跳来跳去。过了一会儿,时间到了,所以他打断了我。我对我解决问题的方式完全不满意。我以为我产生了负面影响。我对被选中感到怀疑。但我想我对行为问题的回答拯救了我。
判决:选定