📜  亚马逊面试经历(2019校外)

📅  最后修改于: 2022-05-13 01:58:38.457000             🧑  作者: Mango

亚马逊面试经历(2019校外)

大家好,亚马逊于 2019 年 1 月在 Gurugram 进行了一次泳池驾驶。我们分享了一个在 HackerEarth 上托管的测试链接。测试的模式是 20 个 MCQ 和 2 个编程问题。

在线测试:

20 个基于操作系统、网络、COA、DBMS、OOPS 的 MCQ。

Q1:给定一个 NxM 网格。网格仅包含 3 个整数 (0, 1, 2)

  • 0 表示空单元格。
  • 1表示含有细胞的植物。
  • 2 代表您当前所在的单元格。

您可以移动到相邻的单元格(上、下、左、右)。在不踩到植物的情况下找到到达其中一个边界的最短路径的长度。

路径的长度是您进行的移动次数。

Q2:给你一些规则(<=26)一个整数K。你可以在保持给定规则不变的情况下对规则进行多次排列。

编写一个程序,找出规则的第 K 个字典序最小排列。

例如。

输入:
bcd(规则)
xyz(规则)
1 (K)

输出:
axyzbcdefghijklmnopqrstuvwxyz

解释:
字母 b、c、d 已经被映射为分别表示 x、y、z。现在我们需要找到字母表的字典最小(K=1)排列。如果我们将每个剩余的字母分配到排列中最早的可能位置,就可以做到这一点。因此,答案是axyzbcdefghijklmnopqrstuvwxyz

我完成了第一个问题,第二个问题是部分的,这足以有资格参加面对面的面试。

第1轮:

Q1:之字形树遍历

Q2:二叉树转DLL

我回答了他们两个。
面试官首先让我想办法,然后向他解释这个办法。一旦他对这种方法感到满意,他就让我写生产级代码。

第 2 轮:

Q1:给定一个 IP 地址列表 [192.12.23.45, 234.23.56.89, ... ]。删除列表中的重复 IP。

Sol:我给出的第一个答案是在迭代时将 IP 地址存储在一个集合中,如果在集合中找到 IP,则将其删除。
但是,面试官对空间复杂度不满意,所以他告诉我要降低空间复杂度。
我想出了一个基于尝试的解决方案,而不是将 IP 存储在集合中,而是将其存储在 Trie 中。(空间复杂性降低,因为 Trie 中的节点不占用空间,除非分配一个值,而不是创建一个新的每个 IP 的节点,在 Trie 中,即使有一半的 IP 相同,也可以重用一个节点)。

Q2:最大路径和
(没有空间复杂性)

完全解决了第一个问题但花费了更多时间,因此无法按时解决第二个问题。

判决:拒绝