该过程包括在线一轮和最多两轮面对面的技术轮。我是通过 amazon.jobs 申请的,所以这对我来说是一次校外活动。
在线回合:
本轮共有 30 个问题(28 个 MCQ + 2 个编码问题),完成测试需要 90 分钟。测试通过网络摄像头和麦克风进行监控。 MCQ 主要是关于 C 和数据结构的。编码问题相当简单。如果你善于解决问题,你就会通过。
面对面面试:
第1轮:
面试官开始问我最喜欢的科目是什么的正常问题。转到数据结构他问哪个是我最喜欢的数据结构。我回答了树(你最喜欢什么完全取决于你)。
然后他问了一个基于 Trees 的问题(显然!)
给定一棵二叉树,打印树的顶视图。我告诉他方法,然后他让我找到一些角落案例。无法这样做,他在纸上画了一个,我的逻辑就失败了。然后经过一番思考,我优化了我的方法,他似乎对答案很满意。
关于这个问题,他让我从给定链表的最后一个打印第 n 个节点。我向他解释了方法,然后他告诉我将代码写在纸上。他检查了代码并发现了一些错误,我立即纠正了它们。我在两次遍历中做到了,他要求使用一次遍历的方法。他甚至向我暗示了使用两个指针而不是一个指针。我遇到了一些麻烦,但接近解决方案。
然后他让我在纸上写下我的名字,并让我去。
5 分钟后,我被告知我通过了第 1 轮。
第二轮:
面试官非常友好。他让我做自我介绍。之后,他跳到了技术问题上。
- 给定一组字符串和一个输入字符串。一个字符串只有在它可以被分解成不重叠的子字符串时才有效,这样每个子字符串在集合中都是可用的。这个问题与此有些相似。由于我在字符串很弱,我没有得到任何好的解决方案。我告诉他我的方法,他告诉我花点时间考虑一下。看着我挣扎于解决方案,他开始询问我的项目。我无法找到一个好的解决方案。然后他进入下一个问题。
- 给定一棵二叉树和两个节点,节点 1 和节点 2。打印从节点 1 到节点 2 的路径。我告诉他我们可以找到两个节点的最低共同祖先(LCA)并将从 LCA 到节点 1 的路径存储在一个堆栈并打印堆栈中从 LCA 到节点 2 的堆栈和路径(这次 LCA 除外,因为它已经被打印)并打印堆栈。他说这是一个很好的方法,并让我编写代码。我无法正确编写代码。他问了我关于 LCA 的问题。
最后他问我有没有什么问题。我问实习生在亚马逊从事什么样的项目。他回答说这因部门和地点而异。
是一次不错的面试体验。 GeeksForGeeks 是一个学习数据结构和解决问题技能的好地方。
我没有被选中担任这个角色,而是为未来努力工作。