📜  亚马逊面试体验| 395套(校园内实习)

📅  最后修改于: 2021-04-29 10:07:50             🧑  作者: Mango

第一轮:共有300名学生参加了被选为在亚马逊实习的想法。
第一轮有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. 在一个字符串,重新排列的字符,没有相邻的两个相同
    但是我使用哈希表来查找字符的出现。创建的字符数组遍历的地图与iterator.Filled的字符阵列,以在奇数位置然后毕竟奇数位置被填充予填充在偶数位置的元件。使用验证函数检查新生成的字符串是否没有重复的相邻字符。如果为假照片可以否则不会形成字符串返回字符串。
  2. 给定一棵树和一个元素K。找到总和等于K的根叶路径并删除该路径.GeeksforGeeks链接

    共有10人入围。

    接下来是最后一轮。这是F2F回合。第三回合
    面试官请我简要介绍一下我。
    然后他继续向我射击编码问题。

    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 << n(可忽略),n << m,m约等于n时该怎么办?
      我说过当m或n值可以忽略不计时,我们可以对较小尺寸的数组进行排序并进行二进制搜索
      排序需要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,然后解决公司所有特定问题。