最近亚马逊印度公司访问了我们的校园,进行了为期两个月的实习。一共有四轮。
2个在线编码问题+20个MCQ: MCQ有15个关于操作系统(出乎我意料)的问题(不完全是),一个关于能力(概率),其余的都是c/c++
第二轮(集体面试/笔试): 21人入选第二轮。我们有两个问题。
1. 给定两个字符串,找出它们是否是彼此的字谜。 (太容易了)。
2. 给定一个n元树,将其转换为数组并返回。再次从该数组构造相同的n元树。 (这里的DFS更好,因为需要重建)——
将根推到堆栈中。“弹出堆栈。存储根节点的值及其在数组中的子节点数。将所有子节点从右向左推送到堆栈中”。”。。这样做直到堆栈变空。。阵列将具有dfs以及每个节点的子节点数。
对于重建,通过引用传递“i”(i用于迭代数组),获取索引0处的值。。让它有根。增量i.对于根的所有子级,递归调用同一个函数。返回根。(我希望这能奏效:P)
第三轮(面对面): 只有5人被选中。我只被问到一个问题,但我做得不好。求一个数的平方根。我回答说,这可以用巴比伦的方法来实现。( https://www.geeksforgeeks.org/square-root-of-a-perfect-square/ )或二进制搜索方法。。他让我实现二进制搜索方法。我犯了个错误。然后他让我纠正它。。我改正了。我没能给他留下多少印象。
记住浮点运算的限制。。这就是我失败的地方。
第四轮(面对面): 我被要求参加第四轮比赛。(因为我在第三轮表现不好,所以我只打了第四轮。)。面试官问了很多问题。他们很容易
1. .给定排序为0和1的数组。查找第一个出现的1 (二进制搜索)
2. 给定一个0和1的无限数组。(已排序)。查找第一个出现的1
3. 给定一个按行和列升序排序的矩阵。搜索元素 .这是O(n+m)。他问我一个更好的解决办法。。我试过了,他帮了我很多。。虽然我没能做到。
4. 给定一棵树,打印从根到叶的最大和路径 . 给定一棵树的螺旋状排列。
ex : 1 / 2 3 / / 4 5 6 7 o/p : 4 2 6 5 1 3 7
6. 使用数组实现堆栈 .使用数组实现两个堆栈。实现3个堆栈。
7.给你一个数组。当用户想要创建堆栈时,必须创建一个堆栈,当用户说要删除堆栈时,必须删除一个堆栈。你不会得到将要创建的堆栈数。
我感谢Geeksforgeks为学习新事物提供了一个极好的平台。在面试角查看其他公司面试。
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。