亚马逊在线评估。所以这一轮是在名为 AMCAT 的平台上举行的。这些问题是重复的,而且大多数被问到的问题都可以在 Internet 上找到。
所以这一轮有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) 中解决这个问题的解决方案的时间复杂度降低。