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

📅  最后修改于: 2021-11-18 02:47:36             🧑  作者: Mango

亚马逊在线评估。所以这一轮是在名为 AMCAT 的平台上举行的。这些问题是重复的,而且大多数被问到的问题都可以在 Internet 上找到。

所以这一轮有4个部分:

  1. 调试
  2. 资质
  3. 行为的
  4. 编码

编码回合非常简单,我遇到的一些问题是:-

  1. 创建包含随机指针的链接列表的副本。
  2. 在按行 – 列方式排序的矩阵中搜索。
  3. 图中的桥接。
  4. https://leetcode.com/discuss/interview-question/373006

所有的问题都可以在互联网上轻松找到。

技术面试一:第一轮线上约2500人,只有161人获得面试机会。所以我的面试是在宣布在线轮结果一周后进行的。

我在Amazon chime上参加会议,面试官直接让我加入直播编码平台,他给了我第一个编码问题。

他让我告诉他一个最佳方法,只有他对我的方法感到满意,我才能编写代码。我告诉他我的方法,尽管他给了一些提示让我采取正确的方法。

问题 1:给定 n 个整数的数组 nums 和一个整数目标,nums 中是否有元素 a、b、c 和 d 使得 a + b + c + d = target?在数组中找到所有唯一的四元组,给出目标的总和。

请注意,解决方案集不得包含重复的四元组。

Input: nums = {1,0,-1,0,-2,2}, target = 0
Output: [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]

它基于树上的 DP,我告诉他的第一种方法是蛮力方法,他希望我在 O(N) 中完成此操作,因此在 4-5 分钟内,我能够找到解决方案。所以我不得不在 45 到 60 分钟内编写这些代码,包括对方法和时间复杂度的讨论。

总的来说,这是一次了不起的经历,我第一次遇到这些问题,而且我几乎能够把它做对。那是一种奇妙的感觉,超级满意。

问题 2:给定二叉树的根,找出存在不同节点 A 和 B 的最大值 V,其中 V = |A.val – B.val| A是B的祖先。

8
   / \
  3   10
 /  \   \
1    6   14
    /  \   \
   4    7   13

技术面试 2:这是一个很棒的回合,尽管我表现不佳。面试官非常友好,只是在回答问题时观察我的想法。

所以在这一轮他也直接邀请我加入直播编码平台。然后他给了我一个问题要解决,我问他是否想听听我的方法,他的回答是NO,

他告诉我,他很高兴看到我将如何解决这个问题。在这一轮中,他甚至不期望没有错误的正确代码,他只对了解我的思考过程以及我如何解决问题感兴趣。

问题 1:给定字符串数字,您必须返回一个分区字符串数组,其中子串 (i-1)th +(i-2)th = ith 子串。

如果不可能,则返回一个空字符串数组。

例如:

Input:                  Output:
"111122335"   ------>   {"1","11","12","23","35"}  
Input:                  Output:
"112233"      ------->  {"11","22","33"}
Input:                  Output:
"11314"       ------->  {"11","3","14"} or {"1","13","14"}
Input:                  Output:
"13234113"     -------->{}

所以我给了第一个问题的回溯解决方案。时间复杂度很高,我无法减少它(尽管我正确编码了回溯解决方案)。

问题2:

B, C, D reports to A
E, F, G reports to B
H, I report to C
J, K, L reports to H
M, N reports to K
O, P reports to J
Input:
Emp1: O
Emp2: M
Output:
C

这是第二个问题,没有给出任何其他内容。我必须弄清楚我与这有什么关系。

他告诉我,我必须设计一个数据结构来保存所有这些信息,并制作一个适当的程序来展示我将如何在数据结构中存储值。

之后解决给定输入的问题。

代替 A、B、C、D……等,每个员工都可以有一个唯一 ID,并且可以有无限的人向一个人报告。对于第二个问题,我为解决方案构建了一个 N 元树,基本上,输出是输入值的最小公共祖先。

所以我用整个输入和输出为整个结构制作了一个程序(包括我如何将给定的数据放入数据结构中)。

我无法将他要求我在 O(1) 或 O(N) 中解决这个问题的解决方案的时间复杂度降低。