📜  亚马逊面试经历|校外实习

📅  最后修改于: 2021-11-15 08:17:12             🧑  作者: Mango

大家好。这是我在亚马逊实习的面试经历。

持续时间 – 6 个月

轮次 – 1 次在线测试 + 2 次个人面试 (F2F)

第1轮:

第一轮比较轻松。在这里,我必须进行在线测试,其中包含 20 个 MCQ,其中有一般能力问题、OOP、输出等。 除此之外,还有 2 个编码问题:

  1. https://www.geeksforgeeks.org/number-of-ways-to-get-a-given-sum-with-n-number-of-m-faced-dices/
  2. 这是一个关于 String 的问题,我不记得了。

第二轮:

对于这一轮和下一轮,我被叫到班加罗尔。这一轮大约是 1 小时。我被问到 2 个编码问题:

  1. https://www.geeksforgeeks.org/search-an-element-in-a-sorted-and-pivoted-array/
  2. https://www.geeksforgeeks.org/merge-k-sorted-arrays-set-2-different-sized-arrays/,虽然略有不同。如果有 k 个数组,最后一个数组有 n 个元素,但这个数组的总大小等于所有其他数组的大小和 n 的总和。我不被允许使用任何额外的空间。为了解决这个问题,我必须使用从末尾开始的大小为 k 的最大堆,并且每次都将结果插入到最后一个数组的末尾。

第 3 轮:

这一轮是1小时20分钟。这一轮有3个部分,第一和最后是编码,第二是理论。序列中的 3 个部分是:

  1. 树中的每个节点通常最多有 1 个父节点和 2 个子节点,在给定的树中,每个节点最多可以有 2 个父节点和 2 个子节点。每个节点都有一个与之关联的值。我必须找到通过从根遍历到叶子最有效的方式可以获得的最大和。每个节点的值也可以为负。我必须在 O(n) 中解决这个问题。为了解决这个问题,我使用了动态编程。
  2. 关于理论问题,问题是:
    1. ipv4 和 ipv6 之间的区别除了长度。
    2. 什么是内存虚拟化?

    还有2个问题,老实说,我无法回答面试官问我的任何理论问题。当我无法回答问题时,他让我告诉他我的项目。我解释了我所有的项目。他还让我讲述我对操作系统的了解,我用 15 到 20 分钟的时间解释了我所知道的一切。

  3. 给定一组节点,每个节点代表一条连接 2 个城市的道路。我需要找到给定的源城市和目标城市之间是否存在路径。道路可以在两个方向上遍历,即从 A 到 B 和从 B 到 A。首先,我创建了一个类型为 ()> ((city), (由所有城市组成)的哈希图我可以从那个城市到达)),然后我在它上面应用了 BFS。参考链接了解BFS部分——https://www.geeksforgeeks.org/find-if-there-is-a-path-between-two-vertices-in-a-given-graph/

我能够正确回答所有编码问题,但不能正确回答理论问题,但幸运的是我被选中了🙂

重要建议 – 不要放弃编码问题,继续尝试直到找到解决方案。如果你在某件事上遇到困难,面试官会给你一个提示来帮助你。即使你不能回答理论问题,但能很好地解决编码问题,你也会被选中。

判决:选择