📜  亚马逊春季实习面试经验(校内)

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

第 1 轮:在线测试(2 小时)
在线测试在 Aspiring Minds 平台上进行。测试有以下几个部分:
1. 代码调试
2. 资质
3. 语言和逻辑推理
4. 编码
5. 工作场所调查
6. 反馈
代码调试问题相当简单。能力、语言和逻辑推理部分难度适中。编码回合是中等难度的(从编码平台和时间限制来看)。工作场所调查和反馈部分在入围名单中同等重要。共有200名学生参加了考试,其中15名学生入围。

第二轮:技术面试(2小时)
只有一张脸是圆的。面试官自我介绍,然后让我做自我介绍。我们讨论了我的爱好 15-20 分钟,然后我们开始讨论一些数据结构和算法问题。以下是面试中问到的问题。
1.给定两个链表,其中每个链表代表一个数字(每个节点包含一个数字),您必须设计一种算法将这两个数字相加并将结果存储在另一个链表中。我告诉他我已经看到了这个问题,所以他很快就问我解决它的方法。然后他让我用各种约束来解决它(你不能反转链表,没有多余的空间,不能使用递归等)。我给出了我能想到的所有方法,然后我们讨论了每种方法的时间和空间复杂性。讨论持续了 5 到 10 分钟。
2.给定一个xn矩阵,其中每个单元格包含一个不同的整数,如果相邻单元格中的数字比当前单元格大1,则可以从任何位置开始,然后移动到相邻单元格(共享边)。您必须找到矩阵中最长路径的长度。我给出了 BFS + minHeap 方法。我没有考虑矩阵中所有元素都是不同的约束,所以面试要求我优化方法并澄清所有元素都是不同的。然后我给出了简单的 BFS 方法,我们讨论了我们讨论的所有方法的时间和空间复杂性。讨论完解决方案后,他让我为我们讨论的确切解决方案编写代码。我花了 5-10 分钟来完成代码。他将代码放在一边,并在采访结束时对其进行了审查。然后我们继续讨论更多的问题。
3. 给定两个字符串,找出最长公共子序列。这是一个标准问题,所以他让我解释关于 DP 的一切(递归、基本情况、最优子结构、重叠子问题、记忆化等)。我们讨论了一段时间的 DP 概念,然后我们分析了 DP 的时间和空间复杂度。 LCS问题。
4. 他问了我一些散列的核心概念,如散列函数、探测技术、负载因子等。然后他问我如果我在自己的项目中实现它,我会怎么做来提高散列的性能。面试官正在寻找“自定义哈希函数”这个词,我在 5 分钟后找到了那个点,然后我们继续下一个问题。
5. 给定一棵二叉树,写一个算法来连接同级节点。这又是一个标准问题,我立即给出了解决方案。然后他又加了一些约束(不使用递归,有递归,全二叉树,一般二叉树等),我用递归解决不了,所以他通过询问不同类型的遍历给了我一个提示。我能够在提示后使用后序遍历来解决它。

他审查了我的代码并且对它很满意,所以我们没有讨论太多。然后我们讨论了亚马逊和其他 IT 公司的工作文化,SDE 的作用是什么等等。我特别好奇亚马逊的团队规模以及他们如何协作完成一个项目。
结论:精选🙂