📜  亚马逊面试经历 | Set 388(全日制在校内)

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

亚马逊面试经历 | Set 388(全日制在校内)

第 1 轮:在线编码测试- 90 分钟(HackerEarth)

它有 2 个编码问题和 20 个 MCQ。

  1. 背包变体(您可以任意选择一个项目) GeeksforGeeks Link
  2. 给定一个由 0、1 和 2 组成的二维数组。 1 表示新鲜的苹果,2 表示腐烂的苹果,0 表示该位置没有苹果。
    每个腐烂的苹果需要 1 天的时间才能使其邻居(8 个,给定一个新鲜的苹果,已经在那里)腐烂。计算所有苹果会腐烂的天数。如果不是,则打印永远不会腐烂的苹果的数量。

MCQ 包括一些基于 C 语言的输出问题 (5)、时间复杂度 (2)、数据结构 (10)、OS(2)、基于 Java 的输出问题 (1) 等。

第 2 轮 (F2F1)
面试官很冷淡,让我自我介绍,然后他让我解释我的任何项目。然后他问了我两个问题:

  1. 给定一棵特殊的二叉树,求树的高度。
    特长:每个叶子都以循环双向链表的方式连接到下一个叶子(从左到右)。
    时尚。假设 2 个连续的叶子是 A 和 B,所以,A->right = B 和 B->left = A。最左边的叶子的左边指向最右边的叶子,最右边的叶子的右边指向最左边的叶子。
    预期时间复杂度 = O(n),空间复杂度 = O(1)。
    GeeksforGeeks 链接
  2. 翻转最大 k 位以找到二进制数组中连续 1 的最大数量。
    预期时间复杂度 = O(n),空间复杂度 = O(1)。

第 2 轮 (F2F2)
他首先描述了我的项目,然后问了我几个问题,主要是:

  1. 给定字符串的下一个排列(可以包含重复项)。 (编写完整的代码,包括交换、反向等)。
    GeeksforGeeks 链接
  2. 找到一棵树的镜像,其中每个节点可以有任意数量的孩子。 (写完整的代码)
    GeeksforGeeks 链接
  3. 边界顺序遍历。
    GeeksforGeeks 链接
  4. 检查给定的 2 个节点是否是表亲。
    GeeksforGeeks 链接
  5. 检查给定的树是否是求和树。 (任何节点的值 = 所有子节点值的总和)。
    GeeksforGeeks 链接

第三轮(F2F3)
她首先描述了我的项目,然后他问了我几个问题,主要是:

  1. 递归和迭代之间的区别(略长的讨论)。
  2. 数组、链表和树之间的区别。
    GeeksforGeeks 链接
  3. 讨论所有 O(n logn) 排序算法。
  4. 仅一次对包含 0、1 和 2 的数组进行排序。
    GeeksforGeeks 链接
  5. 给定 2 个数组,它们表示要插入到两个单独的二叉搜索树中的元素。查找是否二分查找
    树将相同或不同,而无需实际构建树。
    GeeksforGeeks 链接
    Eg: 2 3 1
                2 1 3
                Ans = Yes.
            Eg. 1 2 3
                3 2 1
                Ans = No. 
  6. DBMS 中的范式。
  7. 线程和进程之间的区别。此外,在多线程和多处理之间。
  8. 从给定的二叉搜索树中返回一个随机节点,并在树中找到第 k 个最小值(可以改变结构)
    GeeksforGeeks 链接
  9. 方阵中的螺旋顺序遍历。
    GeeksforGeeks 链接
  10. 在已排序的旋转数组中查找元素。预期时间复杂度 = O(log n)。
    GeeksforGeeks 链接

第 4 轮(电话 + 屏幕共享)
他还开始描述我的项目。然后他只问了一个问题。

  1. 给定一个数组,找出数组中的反转数。GeeksforGeeks Link

通话质量和互联网连接很差。我无法在电话中解释我的解决方案(递归)。
然后我在共享屏幕上写了代码。他让我在一个案例上试运行它。就在我即将试运行时,我遇到了 502 Bad Gateway 错误。尽管如此,他仍然可以看到我的代码并问我一些问题
在我的代码中,例如使用“and”而不是“&&”和声明数组,例如 int temp[n],而不使用 malloc
(特别是:为什么 malloc,如果你可以声明这样的数组?)。后来,我听不见他的声音,所以他决定在这里结束采访。

相关练习题

最大化 1 的数量
亚马逊的所有练习题!