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