亚马逊一周前来到我们的校园,程序如下:
第1轮-
20个简单的MCQ
2个编码问题:
(a)- 找到下一个具有相同数字集的更大数字 –> 甚至蛮力解决方案有效。
(b)-对固定后表达的评估。
注意 – 只为解决至少一个编码问题而战。如果您没有做过任何编码问题,那么无论您做了多少个 MCQ,您都无法获得下一轮的资格。我从编码问题开始,做了 1 个问题,只有 10 个 MCQ,并有资格进入下一轮。
21名候选人入围。
第二轮(面对面)(30 分钟):
自我介绍-(只是形式)
询问测试并讨论编码问题。(必须在面试前解决所有编码问题)。
那么第二个问题——
1- 对角打印一棵二叉树。我在 2 分钟内告诉他算法,然后他让我写完整的代码(特别提到不是伪代码)。它可能包含一些语法错误,但这不是什么大问题。他们只看您是否能够正确实施算法。
然后他告诉我代码中有一个错误,它没有正确转到下一行。
我告诉他这是正确的,让我们手动运行并检查。代码是正确的。
2-总和为 0 的子数组
我知道它的解决方案并立即回答了最佳解决方案。他问我之前是否做过这个问题。我说的不完全一样,但我喜欢竞争性编码,所以我做了类似的问题。然后他扩展了这个问题,并要求用一些零打印所有子数组。(编写正确的代码)。
然后他讨论了极端案例,我告诉了一些,然后他给出了一些提示,然后我明白了这个想法,回答了所有极端案例。
朋友问的一些问题->
1-给定一个数组 A[] 和一个数字 x,检查 A[] 中的对,总和为 x
2-在 BST 中找到具有给定目标的对(期望中序和反向中序解决方案)
3-二叉树的最大宽度
4-下一个更大的元素
5-螺旋遍历矩阵
注意 – 同一面试官向许多候选人提出了相同的问题,因此建议您与朋友分享问题,因为他们只有在您完成了两个问题后才会选择您进入下一轮。
本轮有9人入围。
第三轮(近2小时)-
1-给定一个数字流,您将如何维护前 10 个元素。每当被问到时,答案应该是到目前为止的前 10 个元素。 (使用最小堆在 2 分钟内回答)。
2-外星词典
非常棘手的问题。在面试官的暗示下,我能够在 1 小时内回答这个问题。
3- 一些基本的 C 问题 – 黑白 Malloc 和 Calloc 有什么区别。场景何时使用哪一个。
4- 用于在文本编辑器中撤消和重做的数据结构。
我花了很多时间,但最终告诉了它的答案,即堆栈。
5-二叉树的最低共同祖先。(正确代码)
在这一轮之后,选出了 7 名候选人。
感谢 geeksforgeeks 帮助我准备。