第一轮:共有300名学生参加了被选为在亚马逊实习的想法。
第一轮有20个MCQ和2个问题。
- 给定范围[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).
- 给定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名学生移至下一轮。
第二回合
那是一组团体飞行。我和我的朋友坐在同一个房间里,并被要求编写以下代码:
- 在一个字符串,重新排列的字符,没有相邻的两个相同
但是我使用哈希表来查找字符的出现。创建的字符数组遍历的地图与iterator.Filled的字符阵列,以在奇数位置然后毕竟奇数位置被填充予填充在偶数位置的元件。使用验证函数检查新生成的字符串是否没有重复的相邻字符。如果为假照片可以否则不会形成字符串返回字符串。 - 给定一棵树和一个元素K。找到总和等于K的根叶路径并删除该路径.GeeksforGeeks链接
共有10人入围。
接下来是最后一轮。这是F2F回合。第三回合
面试官请我简要介绍一下我。
然后他继续向我射击编码问题。- 在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)),在这里我们不使用排序,因为数组大小或多或少都相同,我们使用了更多空间,从而降低了时间复杂度,无论如何,搜索时间是相同的。 - 这是一个有趣的问题。以一对城市的形式给出去往不同城市的机票,其中一个表示来源,另一个表示目的地。我们的工作是返回一个链接列表,该链接列表指示旅行者应旅行的方式以覆盖所有城市。面试官提到的)。
Input: (Chennai,Bombay) (Bangalore,Goa) (Agra,Chennai) (Bombay,Bangalore) Output Agra->Chennai->Bombay->Bangalore->Goa
解决方案:将它们放在哈希图中。现在查找所有城市的发生情况。在此我们可以注意到,源和目的地在票证中仅发生一次。与原始对列表进行交叉检查,以找出哪个是来源,哪个是目的地。然后借助一个单独的比较器函数,将对对推入新的哈希表,使得一对对的源必须是前一对的目的地),然后遍历新的哈希表以创建一个链表,然后将其返回。
面试官还会在您需要任何方法的同时为您提供帮助(但不要向他们寻求更多帮助。)但是,如果面试官有意提供线索,则可以根据自己的意愿进行编码,因为这是他们测试您是否可以的一种方法。适应任何方法和代码。结果出来了,有8人参加了实习。
幸运的是我是其中之一。
我的个人建议:自信,保持较高的沟通技巧,使用geeksforgeeks网站学习链表,树,STL和DP,然后解决公司所有特定问题。
- 在2个未排序的数组中找到交集元素。 GeeksforGeeks链接