📜  亚马逊专访 |第 113 组(校内实习)

📅  最后修改于: 2021-11-10 06:30:36             🧑  作者: Mango

亚马逊访问了我们的校园,提供为期 6 个月的实习机会。有 3 轮 – 一轮在线编程和 2 轮面对面的面试。

在线编码回合(时长:1 小时 30 分钟)

    这一轮是在hackerrank.com上进行的。有 20 个 mcq 与计算机科学和能力相关。其中许多问题都在 GeeksForGeeks 的 MCQ 部分。并且有 2 个编码问题:
  1. GeeksforGeeks 链接
    Input : m=5,n=5.
    Mat[] = 1 1 0 0 0
            0 1 0 0 1
            1 0 0 1 1
            0 0 0 0 0
            1 0 1 0 1
    Output : 5
    First: (0,0),(0,1),(1,1),(2,0)
    Second: (1,4),(2,3),(2,4)
    Third: (4,0)
    Fourth: (4,2)
    Fifth: (4,4)

面对面面试-1(时长:1小时)

    面试官直接开始提问,没有任何介绍。他问我快速排序和合并排序的最坏情况复杂性。然后问了我两个关于树木的问题:
  1. https://practice.geeksforgeeks.org/problems/tree-from-postorder-and-inorder/1?我说不。然后他问我是否可以从我说是的数组中制作一个二叉搜索树。然后在讨论了方法之后,他要求编写代码。
  2. 然后他让我写一棵树的层序遍历的代码。还让我计算代码的复杂度

    .

面对面面试-2(时长:约1小时30分钟)

    面试官从一般的介绍开始。然后他开始提问。
  1. 给定具有开始时间、结束时间和布尔变量 hasConfilct 的 n 个约会,我们必须设置与其他约会冲突的那些约会的布尔变量 hasConflict。
    Example:  Appointment1: (2:00-3:00)
          Appointment2: (2:30-3:30)
          Appointment3: (4:00-6:00)

    我必须将约会 1 和约会 2 的 hasConflict 设置为 true。
    最初,我是在 O(n^2) 中完成的。但后来他让我优化解决方案。经过一些讨论,我能够在 O(nlogn) 中解决它。

  2. 鉴于在 Amazon.in 项目的详细信息页面中仅显示从数据库中动态获取的一个字段,我们必须根据以下行提高性能:
    “80% 的用户访问了 20% 产品的详细信息页面。”
    我说过我们可以将这 20% 存储在 Web 服务器上,这样我们就不必每次都从数据库中获取项目详细信息。他问我将在哪里以及如何存放它。我回答主内存并将使用 BST 来存储它。然后在关于如何使用 get 和 put 操作的大量讨论(大约 30 分钟)之后,他对解决方案感到满意。
  3. 给定一个放在内存中的链表,如果同时对链表执行操作会出现什么问题。从这里他开始询问线程,因为答案与之相关。
  4. 当单线程应用程序转换为多线程应用程序时,操作系统必须做出什么样的改变?
  5. 当操作系统从一个线程执行转移到另一个线程时,采取了哪些步骤?

最后,我被录用了。感谢 GeeksForGeeks 在整个面试准备过程中帮助我。

亚马逊的所有练习题!