亚马逊面试经历 |第 165 组(用于 SDE I)
每轮1个多小时,主要侧重于逻辑思维和方法。 DS和算法是被问到的话题。
第一回合 -
第一轮,有两个面试官。首先,他们问起我。为什么要离开现在的公司并加入亚马逊?
然后经过简短的讨论,他继续提问。
有一个对行进行排序的二维矩阵。将其转换为一维排序数组。还要指定空间和时间复杂度。
给定两棵二叉树,检查两棵树是否相同。为它编写工作代码。
使用前面的解决方案,检查一棵树是否是另一棵树的子树。还要使用适当的代码指定时间复杂度(平均和最坏情况)。
第二轮 -
关于目前公司工作的一般性讨论。
给定一些朋友,他们必须互相给予或接受一些钱。设计一个算法,使所有朋友之间的总现金流最小化。指定您将使用的数据结构并为其编写代码。
给定一个数组,找到数字“x”第一次出现的索引。首先,我给出了 O(n) 的解决方案,然后他要求优化它并在小于 O(n) 的时间内找到它。这个问题讨论了很久。
第三轮——
一般的问题,比如——告诉我你自己。
你的强项是什么?
为什么是亚马逊?
为什么要这么快就离开现在的公司?
您是否曾经与您的管理层发生过任何分歧?
在现在的公司工作?
设计蛇和梯子游戏。你会使用什么样的数据结构,需要设计。然后他要求进一步优化它。
给定两个链表,求这些链表的总和。有递归和无递归。列表可以是相同或不同的长度。需要具有空间和时间复杂性的完整代码。
第四轮——
一般性讨论和介绍。在现在的公司工作?
迄今为止,您面临的主要挑战任务是什么?然后是关于任务的更多讨论和问题。
与经理有任何分歧,以及您提出并实施的任何好的或创新的想法吗?
一个技术问题 - 给定一个单词和字典,找到字典中存在的特定单词的所有字谜(即有效单词)。提出您使用的数据结构和解决方案的时间复杂度。