📜  亚马逊面试经历| Set 395(校内实习)

📅  最后修改于: 2021-11-15 08:16:08             🧑  作者: Mango

第 1 轮:共有 300 名学生参与了被选中在亚马逊实习的想法。
第 1 轮有 20 个 MCQ 和 2 个问题。

  1. 给定范围 [L,R] 找出在二进制表示中具有素数设置位的数字的计数。 [此提示包含在 O/P 部分中。在 L,R 范围内只应检查偶数]
    GeeksforGeeks 链接

    例子

    Input : 6 10 
    Output :2
    6 -> 110 (2 set bits, 2 is prime)
    10->1010 (2 set bits , 2 is prime)
    So 6,10 are even numbers having prime number of set bits
    (Use the optimized way to check prime by creating a array 
    of prime numbers and trying to divide the setbit count
    to check if it is prime or not).
    
  2. 给定 n 条线,一块土地可以分成许多不同度量的区域(比如 b)。您将获得一个常数 K 。你要从B区找是否可以使用K区
    Input : 2 4
    Output : True
    Think of a circle whenever a circle is split by 
    a n line the total number of areas is given by n*2 
    so the answer will be if(n*2>=k||n+1==k) return True.
    

    共有 30 名学生进入下一轮。

第二轮:
那是一群飞轮。我和我的朋友坐在同一个房间里,被要求编写以下代码:

  1. 重新排列字符中的字符串,使得没有两个相邻的字符相同
    但是我使用了一个堆栈,我使用了 hashmap 来查找字符的出现次数。创建一个字符数组,用迭代器遍历地图。用奇数位置的元素填充字符数组,然后在填充所有奇数位置后,我填充了偶数位置。使用验证函数检查新生成的字符串是否没有相邻字符重复。如果为假照片可以否则不会形成字符串返回字符串。
  2. 给定一棵树和一个元素 K 。找到总和等于 K 的根叶路径并删除该路径。GeeksforGeeks 链接

    共有10人入围。

    接下来是最后一轮。这是 F2F 回合。第 3 轮:
    面试官让我简单介绍一下我。
    然后他继续向我提出编码问题。

    1. 在 2 个未排序的数组中找到交集元素。 GeeksforGeeks 链接
      Input: 5 4 1 3 2
             12 3 15 1 7
      Output: 3 1
      

      蛮力:O(n^2)
      所以他让我以优化的方式编码。
      给了我三个约束
      arr1,arr2 的大小为 m,n
      当 m<我说当 m 或 n 值可以忽略不计时,我们可以对较小的数组进行排序并进行二分查找
      sort 需要 O(nlogn) 而二分查找需要 O(logn) 但由于数组大小可以忽略不计排序不会花费太多。
      当它们相等(或近似)然后将所有元素推送到一个集合然后搜索(O(logn)),这里我们不使用排序,因为数组大小或多或少相同,我们使用更多空间从而降低时间复杂度,反正搜索时间是一样的。

    2. 这是一个有趣的问题。给定以一对城市的形式飞往不同城市的机票,其中一个表示来源,另一个表示目的地。我们的工作是返回一个链表,指示旅行应该旅行的方式以覆盖所有城市。(链表不是面试官说的)。
      Input: (Chennai,Bombay) (Bangalore,Goa) (Agra,Chennai) (Bombay,Bangalore)
      Output Agra->Chennai->Bombay->Bangalore->Goa
      

      解决方案:将它们放入哈希图中。现在找出所有城市的出现次数。在这里我们可以注意到源和目标在票证中只出现一次。与原始对列表交叉检查以找出哪一个是源,哪一个是目标。然后在一个单独的比较器函数的帮助下,将这些对推入一个新的哈希图中,这样一对的源必须是前一对的目的地)。然后遍历新的哈希图以创建一个链表,然后返回它.

      如果您要求任何方法,面试官也会帮助您(但不要要求他们提供更多帮助。)但是如果面试官故意提供线索,则按照他的意愿进行编码,因为这是他们测试您是否可以的方式之一适应任何方法和代码。结果出来了,8人得到了实习机会。
      幸运的是,我是其中之一。
      我的个人建议:自信,保持高沟通技巧,使用 geeksforgeeks 网站学习链表、树、STL 和 DP,然后解决所有公司特定问题。