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

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

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

亚马逊几天前访问了我的校园。这是我的面试经历。

有 1 个在线回合和 3 个 FTF 和一个提高标准的人。
在线回合(在 Hacker Earth 上进行)
20 道 MCQ 题和 2 道编程题
MCQ 问题 - 每题 1 分(错误答案为 -0.25 分)
编码问题 - 每 10 分

  1. 给定一个字符串,您必须对字符串进行分区,使得分区字符串的每个部分本身都是回文,并且您必须计算此类分区的数量。
    For eg: given string NITIN
        N ITI N
        N I T I N
        NITIN
    Output-3
    

    解决方案:GeeksforGeeks 链接

  2. 给你一个大段落和 N 个单词。您必须找到该段落的最小长度子段落,其中包含所有这些 N 个单词的任意顺序。这里的段落长度是段落中的字数。

    第一技术

    1. 包含另一个字符串的所有字符的字符串中的最小窗口
    2. 实现k个队列单个数组

    第二技术
    我们有 n 台机器,可以在其中运行 n 项任务,并且所有机器都有共同的冷却时间 t(以周期为单位)。需要遵循某些条件 -

    1. 任务只能在其分配的机器上运行。每个任务都分配有自己单独的机器。
      例如,Task1 在 Machine1 上运行。 Task2 可以在 machine2 上运行。Task3 在 machine3 上运行。
      最初,所有机器都很酷,任务可以在它们上面运行。
      一次只能在其分配的机器上运行 1 个任务。即使在分配的机器上也不能同时运行 2 个任务。
      机器在任务运行结束后需要冷却冷却时间 t。
      每个任务需要 1 个周期来运行,机器需要 t 个周期来冷却。
      我们得到一个数组,其中包含任务在机器上运行的顺序。所以我们需要找出运行这些任务总共需要多少周期。
      Eg.
      n = 3
      int arr[] = {3 ,1, 2, 1, 2}
      int t = 2(cooling time)
      Output=6
      

      解释-
      在启动任务 3 可以在第三台机器(T0)上运行
      任务 1 在第一台机器(T1)上运行
      第二台机器上的Task2(T2)
      现在任务 1 等待,因为冷却时间为 2(T3 等待)
      任务 1 现在运行(T4)
      任务 2 在第二台机器上运行,因为第二台机器的冷却时间已经过去(T5)
      运行所有任务所消耗的总周期 =6 个周期

    2. 我们有两个未排序的数组,大小可以不同,我们需要交换第一个数组中的两个元素,第二个数组中的第二个元素,以便交换后每个单独数组的总和相等。
      Eg
      int a[] = {4, 3, 5}
      int b[] = {9, 1, 6}
      Output-{4, 6}
      

      交换数组 a 中的 4 和数组 b 中的 6 以获得每个数组的相等总和为 14。
      解决方案:GeeksforGeeks 链接

    第三技术
    我项目中的几个问题。然后他问我关于 C 程序的结构。
    页面错误和交换空间。

    1. 什么是缓存?
    2. 实施 LRU(仅询问逻辑,例如您将使用哪些数据结构以及如何使用),然后是 2 个编码问题
    3. 假设给你一棵树和一个目标节点,所以我们需要在目标节点成为根节点时重新构建树。(节点可以有超过 2 个子节点)记住所有情况。

      例如-目标节点= 4
    4. 计算整数流中的倒数。(我使用 bst 给出了答案)
      参考:GeeksforGeeks 链接

    提高酒吧-

    1. 给定初始资本 W 和 n 个项目,以及每个项目使用的资本和每个项目的利润。您需要从这 n 个项目中选择 k 个项目,以便最终您的资本最大化。
      Eg-
      W=3
      int capital[] = {9,2,3,1}
      int profit[] = {13,5,2,7}
      int k = 2
      output- 13
      

      解释-我们选择资本为1的项目,新资本变为(3+7-1=9)
      现在我们选择资本为 9 的项目并获得 13 的利润,因此最终资本变为 (9+13-9=13)
      我首先根据资本对数组进行排序,然后选择那些资本要求小于或等于初始资本的项目并将它们插入最大堆中,在提取顶部节点减少 k 之后,我的资本会改变,现在我可以从剩余在我的最大堆中插入新项目,这些项目所需的资本小于或等于新资本,并重复此步骤直到 k 变为 0。

      判决选择😀

      GEEKSFORGEEKS,确实是一个很大的帮助:D。
      提示-不要惊慌..继续尝试不同的方法..当您遇到困难时,它们会为您提供帮助..尝试从极客那里获得尽可能多的经验。从极客的亚马逊标签下完成所有问题。

      亚马逊的所有练习题!