📌  相关文章
📜  亚马逊面试经历| SDE-1 的 6 个月实习生(校内)

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

第一轮:在线测试,第一轮有4个部分。

  1. 代码调试测试

  2. 2 道编码问题(70 分钟)

    • 给定一个数组 A[] 和一个数字 x,检查 A[] 中的对,总和为 x

    • 克隆带有下一个和随机指针的链表

  3. 性格问题

  4. 逻辑推理

我在第一轮观察并指出的一点是,解决方案必须在编码轮中得到最优化,并且由于问题的难度级别不高,因此必须在更短的时间内解决。就我而言,我在规定的时间前半小时完成了测试。

第二轮(技术面试60分钟):首先,面试官要求自我介绍。然后他问了我做过的项目。在对项目进行介绍性讨论后,他给了我 2 个关于他们个人实时代码环境的编码问题。

他让我先解释这个方法,然后把它写下来。如果可能的话,我必须解释每个解决方案的时间复杂度和最佳代码,时间复杂度更小。

  1. 给定一个数组,进行就地替换,使得每个元素都被其右侧最大的元素替换。
  2. 一个包含多个字符(可能出现多次)的数组,给定值 K。使数组中的替换次数最少,使得在结果数组中我们只有 K 个不同的字符(这个问题是作为一个单词问题提出的)一些给定的条件。)

第三轮(技术面试120分钟):与第一轮类似,双方进行了简要介绍。这一轮是编码加上那种人力资源。在 2 个编码问题之后,我被要求描述我在完成我的任何项目时所面临的艰难情况,我的目标是什么,我做了什么来克服它,以及最终结果是什么。

  1. 给出的序列为 [ TTTTBBBBBBBBBB BTT ],其中 T 表示 TV 自行车的数量,B 表示 Bajaj 自行车的数量。编写代码以最佳方式计算车库中 Bajaj 自行车的数量。

    我使用二进制搜索在 O(log n) 中解决了它。

    第二个问题是典型的理解。我最初认为我无法解决它。但面试官非常友好和合作。他让我通过优化的解决方案找到答案。我被要求为此编写一个完整的工作函数。

  2. 您获得了大量 10Mbs 的数据,并且您有一个 1Mb 的 RAM 可用。您将如何使用此 RAM 对完整的 10 Mb 数据进行排序?

    我使用归并排序解释的第一种方法。但它并没有那么优化。我还被要求解释每次传递中合并排序的每个函数的复杂性。这有点像合并 N 个数组。

    最后,我给出了一个时间复杂度较小的使用堆的解决方案,最后面试官很满意。

15 名学生在面试的 38 轮中被选中,我是其中之一。