📜  亚马逊 SDE 面试经验 | 6个月实习+ PPO(校内)

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

亚马逊 SDE 面试经验 | 6个月实习+ PPO(校内)

亚马逊于 2021 年 7 月的最后一周来到我们的校园招聘软件开发工程师职位。我们总共进行了 3 轮(1 次亚马逊评估门户上的在线编码 + 2 次技术面试)。

这是我的面试经历。

第一轮(在线编码轮):这一轮在亚马逊自己的评估平台上进行,有能力倾向、基本编程、CS 基础、英语理解和决策制定的 MCQ 以及 2 个简单/中等难度的编码问题。

  • 对 MCQ 的建议:对 CS 基础知识和能力解决实践有充分的了解。
  • 编码问题仅基于实施。
  • 涉及Maps、Vectors、Sets 和其他 C++ STL 组件的基于实现的问题的良好实践是必须的

第二轮(技术面试1):面试平台 亚马逊编钟

面试官在这一轮中只问了 2 个编码问题:

  1. 第一个问题是,给定一个大小为 n 且包含 n 个元素的数组和另一个大小为 n+m 且包含 m 个元素的数组,对这两个数组进行排序并将最终结果存储在第二个数组中,该数组应包含两个数组的元素。
    • 首先,我通过使用第三个数组提出了蛮力解决方案,然后对它们进行排序并将它们放回第二个数组中。
    • 之后,我建议了一个更好的解决方案,而不使用第三个数组,方法是将第一个数组开头的元素与第二个数组开头的元素进行比较。
    • 之后,他说你很接近,然后给了我一个提示,我成功地解决了这个问题。
    • 在那之后,我被要求为这个问题编写解决方案,我也这样做了。
    • 然后我被要求确定我的代码的时间和空间复杂度
  2. 第二个问题是,给定一个二叉搜索树,将其转换为有序双向链表并返回头指针
    • 这是BST 的标准问题
    • 我通过在树中从右到左遍历来获得链接列表的排序顺序来解释我的方法
    • 然后我为我的解决方案编写了代码。
    • 面试官对我的代码很满意,然后让我确定代码的时间和空间复杂度

之后,他问我有没有什么问题要问他。这一轮持续了大约60分钟。

第三轮(技术面试2):面试平台为Amazon Chime

面试官在这一轮中问了 2 个编码问题和一些行为问题:

  1. 第一个问题是,找到前 100 个素数。
    • 对于这个问题,我首先建议了一种蛮力方法,检查从 2 开始的数字是否是素数,直到我们得到 100 个素数。
    • 之后,我提出了一种更好的方法,即使用埃拉托色尼筛法算法
    • 他对我的方法很满意,之后他让我编写了解决方案。
    • 之后,他问我代码的时间和空间复杂性
  2. 第二个问题是,给定一个字符串数组,找出哪些字符串可以与数组中的其他字符串组合,从而生成数组中存在的字符串。
    • 对于这个问题,首先,我建议使用地图的蛮力方法。
    • 之后,他要求我提供更好的方法。
    • 想了一会儿,我想出了另一种使用 Trie 的方法
    • 他让我解释Trie 数据结构概念以及我们为什么使用它。
    • 之后,他让我使用 Trie 编写解决方案。
    • 在我完成代码后,他问我代码的时间和空间复杂度
    • 我是,给出正确的逻辑并向他解释我的方法,他对我的解决方案感到满意。

之后,他问了我一些行为问题,这是所有亚马逊面试的重要部分。幸运的是,我已经为亚马逊提出的一些最常见的行为问题做好了准备。行为问题是,

  1. 你做过的最具创新性的事情是什么?
  2. 你什么时候尝试过一些独特的事情,你失败了还是成功了?

之后,他问我有没有什么问题要问他。这一轮持续了大约65分钟。

大约 1.5 周后,结果公布,我被选为软件开发工程师的角色(6 个月实习 + PPO)。

我对面试的建议:

  1. 练习GfG 的所有标准亚马逊问题
  2. 对 OS、DBMS、CN 和 OOPS 中的 CS 基础有很好的理解。
  3. 准备一些关于 CS 基础知识和 DSA 问题的简短笔记,这对我们最后的修订很有用。
  4. 准备并记下一些问题的答案 标准亚马逊行为轮问题
    • 说说你自己。
    • 你的优势和弱势是什么。
    • 告诉我你的困境,以及你是如何克服它的。
    • 告诉我你冒险失败的经历。
    • 我们为什么应该录用你。

最后,在进行面试以获得积极结果时,请始终保持冷静。

祝你面试一切顺利。