📜  亚马逊面试经历 |设置 322(校外)

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

亚马逊面试经历 |设置 322(校外)

最近我参加了亚马逊 SDE 1 简介的面试。

第一轮(书面):
给出了 3 个问题,我被要求用任何语言编写可执行代码。

  1. 检查树是否为 BST。<
  2. 检查链表是否为回文。 (O(1)空间)。
  3. 一个大小为 m 的数组(数组 1)具有 m 个已排序的元素,另一个数组(数组 2)的大小为 (m + n) 具有 n 个已排序的元素,您必须将两个数组中的所有元素按排序顺序放入数组 2 中。 (O(1) 辅助空间和 O(m + n) 时间)。

第 2 轮(F2F):

  1. 给定一堆大小为 n 的整数,您必须仅使用 push 和 pop 操作对其进行排序(不允许复制辅助数组中的数字并对其进行排序,然后再将其推回数组中)。 (我给出了 O(n^2) 方法和 O(1) 辅助空间)。
  2. 踩楼梯:有效的移动定义为单步或 2 步。从第一个楼梯开始,您必须以最少的有效移动到达第 n 个楼梯。我给出了 dp 方法,然后将其转换为斐波那契公式,该公式可以使用矩阵求幂在 O(log(n)) 时间内求解。
  3. 步进数:步进数定义为连续数字之间的绝对差不大于1的数字,步进数不能是单个数字。您必须找到 n1 和 n2 之间的步进数,其中 n2 > n1 和 n2,n1 > 0。首先我给出了蛮力方法,即从 n1 遍历到 n2 并打印 i 如果 i 是步进数。他们让我优化它,过了一会儿我想出了 BFS 解决方案,其中图中的一个节点(有向)代表一个数字,并且直接连接到它的节点在末尾附加了一个数字。当从队列中出列的人数大于 n2 时停止。
  4. 河内塔的迭代版本。我给了 TOH 的堆栈版本。由于递归使用递归堆栈。我删除了递归并使用堆栈来模拟递归。他们对解决方案感到满意。


第三轮(F2F):

  1. 在任何时间点打印数字流中的第一个非重复数字。我花了很长时间,经过一番头脑风暴后,我想出了使用 DLL 和映射的解决方案。
  2. 从 BST 中删除一个节点。我忘记了它是如何完成的,所以我不得不认真思考,意识到必须用它的顺序后继替换已删除的节点以维护 BST 属性并编写解决方案。
  3. 这是最激动人心的一轮。他们似乎对我的做法很满意。

第 4 轮(设计轮):

  1. 设计一个停车场。
  2. 使用堆栈创建队列。
  3. 讨论所有操作系统调度算法。
  4. 如何实现 SRTFS(抢占式 SJF)。
  5. 进程间通信讨论:共享内存和套接字。
  6. 为什么套接字比共享内存更受欢迎。
  7. 共享内存存储在哪里(在用户空间或内核空间)?为什么?

第五轮(招聘经理轮):

  1. 一般讨论;一般交流。
  2. 中缀到后缀的转换。
  3. 从二叉树返回包含连续数字的最大长度序列。 IE
    90
               /  \
              1   66
             /      \            
            2       67
          /   \    /
         5     4  68
              /    \
            99      100

    最大长度的连续序列:长度为 3 的 [66, 67, 68]。

我有预感,但一开始无法编写代码,所以他让我稍后再做,经过一番讨论,我有 15 分钟的时间来完成它,最后在这 15 分钟内它点击了,我设法做到了。

一些忠告:

  1. 在纸上练习编码,尝试编写干净的代码而不被覆盖。
  2. 复习操作系统的重要概念。
  3. 他们更专注于思考过程以达到最终解决方案。所以大声思考,你会收到提示;)。
  4. 保持冷静,保持自信。

谢谢 Geeksforgeeks !!!

亚马逊的所有练习题!