与亚马逊合作是一次很棒的经历。关于 GFG 的文章真的很有帮助。
它由两轮组成。
1)在线编码回合
在线评估:它包括四个部分:
*代码调试部分( 20 分钟):本部分共提出 7 个问题。 (简单代码)
* 推理能力部分( 35 分钟):此部分共提出 24 个问题,您将无法跳过并返回问题。
* 编码部分( 70 分钟):2 问题:
- 查找总和小于 k 的未排序数组中的所有对。最初,我试图按 O(n) 的顺序解决,但没有成功。没有任何限制,所以我使用蛮力(没有 TLE)解决了这个问题。
- 第二个问题有点类似于迷宫问题中的老鼠,但目的地可以是任何地方。有多种方法可以解决这个问题。我使用回溯来解决这个问题。
* 工作作风调查( 10分钟):认真填写这个,谁知道这也算。
共有15人入选。
2)技术面试:
有4个不同的面试小组,我是第一个被叫到名字的人之一。我们握手致意。面试官正在他的笔记本电脑上做一些事情。所以,我问了一些关于他的随机问题(我认为这留下了很好的印象)。
他让我做自我介绍。然后我们讨论了项目和我对 GSoC 的参与(他不知道 GSoC)、开源以及我作为 GCI(谷歌代码输入)的工作是什么——导师,我如何向 GCI 学生介绍开源以及所有这些东西)。他问我参加竞争性编程比赛的情况。我告诉他,我不是普通的竞技程序员,只是偶尔参加。
然后他问了第一个问题,检查对称二叉树。他首先询问了方法。我告诉他我使用队列数据结构的方法。然后他让我在纸上写代码。他一直在问我,如果你卡住了就问我。他甚至给了我咖啡(当然我拒绝了)。写完代码后,他指出这个节点是什么,我也错过了一个角落测试代码。所以,然后我定义了节点的结构并考虑了角落测试用例。再次,他让我写一个递归方法的代码(这太容易了)。我们讨论了这两种方法的复杂性。他还向我询问了不同版本的 GNU 编译器和一些可用于 STL 队列数据结构的内置函数及其复杂性和实现。
然后他问了第二个问题,下一个大元素。他把这个问题解释错了。所以我的新问题变成了每个 A[i] :输出将是 min(A[i+1] to A[n]) >= A[i]。
For example:
Input: {13, 6, 7, 14, 9, 10}
Output: { 14, 7, 9, -1, 10, -1}
我花时间解决了这个问题。他给了我一个提示,但最后,我使用有序映射解决了这个问题(他从堆栈数据结构中给出了一个提示)。当我使用地图时,他有点困惑,但我向他解释了一切。然后他让我写代码(这样做没有任何错误)和有序映射的内部工作以及有序和无序映射之间的区别。我们讨论了这两种数据结构的每个函数的复杂性。
他问我有没有问题要问他。我询问了实习项目以及如果被选中我会去哪个团队。我们讨论了亚马逊的工作文化。我们还讨论了 5 分钟的送货服务以及如何改进它。
建议:对你的方法有信心,并尝试与面试官交谈,因为他们肯定会帮助你。如果你什么都不知道,那就对他们说不,而不是虚张声势。在纸上练习代码,因为他们确实需要没有任何错误的良好代码(如果您正在使用,请尝试使用良好的缩进并定义类)。只将那些你真正做过的项目放在简历上(至少如果你伪造它就不会被抓住),并确保你非常深入和详细地了解你的项目的一切。对于亚马逊来说,最好的实践方式是 GeeksForGeeks 亚马逊实习经历档案。它在最后一刻帮助了我很多。另外,请确保您可以谈论您所做的所有事情。他们可能会问你的项目的目的,为什么使用这个框架而不是其他框架,甚至要求编写代码。