我最近参加了亚马逊校外招聘活动的入场式。这是针对金奈SDE的职位。我想与极客们分享我的采访经历。
书面传阅: (a) 给定一个链表和两个整数M和N。。保留M个节点并重复删除N个节点,直到linkedlist结束。
b) 给定BST,用大于当前节点的所有元素之和替换节点值。 我可以用逆序遍历和一个int指针来跟踪和来解决这个问题。
c) 给定一个BST和一个值,检查从根到叶的路径和是否等于给定值。
第一轮F2F: (a) 将两个由数字表示的链表相乘。只能使用一个链表进行所有添加并存储结果,即不应使用额外的链表进行中间添加并最终计算结果。
b) 如果里面有英国电信公司的测试。如果存在,打印BT中最大的BST。
c) 给定一个包含大量单词的大文件,对单词的字谜进行分组 你好吗。天哪,干得好。 o/p: 海亚 如何->哇->哦 完成 是
第二轮F2F: (a) 给定一个链表,打印最后第n个节点。他让我给出优化的解决方案 . 使用慢速指针解决。
b) 在二叉树中找到生命周期评价 他让我用自下而上的方法优化代码,并给出了很多边界条件
c) 给定一个之字形遍历,从中构造一棵树。要求完整的工作代码。
eg. 1 3 2 4 5 6 7 9 8 1 2 3 4 5 6 7 8 9
用双端队列解决了这个问题。
第三轮F2F: (a) 给定一个有限长的棋盘,骑士的起始位置,结束位置。 ->找出骑士是否能到达终点位置。 ->到达该位置所需的最小跳数。 我立刻想出了一个BFS解决方案。他在同一个问题中提出了几个条件,我已经看到了这个问题。
b) 他将问题改为无限长棋盘,如果棋盘上有两名骑士。找到满足要求的最小跳数。 ->提供了很多空间和时间限制。 ->要求我在没有STL的情况下编写完整的代码。
c) 如果我们编码A-1,B-2,c-3,我会发送一个单词CAMP,编码为311316。它可以被解码为3 11 3 16(CKCP),3 1 3 16(CAACP),3 1 3 1 6(CACAF)。给定一个输入编码字符串,找出它可以被解码的方法。(Spoj中的ACODE prob.) 311316 – 4 ->起初无法给出DP解决方案,所以给出了一个递归树的解决方案。他让我优化以避免不必要的计算。。最后用DP解决了这个问题。
第四轮F2F(钢筋提升机轮): 这一轮从我迄今为止完成的项目开始。云计算中的几个基本问题。我在我的一个项目中使用了亚马逊网络服务(AWS)。 a) 很多关于AWS的问题。为什么我们在有这么多替代品的情况下使用它。 b) 当我就可伸缩性问题说服他时,他提出了AWS如何处理负载平衡和可伸缩性问题的问题。 c) 显然,关于弹性映射和弹性块存储的问题。问题堆积如山,直到我能解释那个项目的每个角落。 d) 优势和劣势。 e) 为什么亚马逊,为什么我要在两个月内离开之前的公司。
f) 给定一个带有随机指针的链表,克隆链表。 他几乎没有给出解决方案,他让我在不操纵原始链表的情况下克隆,但要有额外的空间。使用HashMap进行了一些小调整 Map
g) 在给定的BST中查找某个值的上限和下限,无需额外空间。 如果BST包含1 3 6 7 9 12 ->如果给定值为8,则楼层为7,天花板为9。 ->如果给定值为9,则楼层和天花板均为9。 另外,在解释你的项目时要谨慎。
第五轮F2F:(招聘经理轮): 关于AWS的项目和优势的几个问题。 a) 问我不同的进程间通信方法。 b) 哪种方法更快?为什么。然后他让我解释一下共享记忆
c) 要求编写实现LRU缓存的代码。 d) 然后在给定数组的情况下为malloc实现编写代码。
e) 他让我为给定场景编写线程安全代码。 给定两个写线程和两个读线程。给出一个机制来处理写线程和读线程。writer线程在队列或数组中写入一个值1234,reader线程读取该值并将输出打印为1、2、3、4…。。按照给定的顺序,而且只有一次… ->我用一个二进制信号量和一个读写器队列来处理它。。 f) 他让我和现实生活中的情景联系起来。 相互排斥和所有案件。 g) 不同类型的调度,linux有什么类型的调度程序,为什么。 h) linux是否有抢占式调度,以及关于虚拟内存的一些问题。 他只是分析了我解决问题的方法,检查了我对操作系统概念的基本理解。
两天后终于收到了亚马逊的报价。我非常感谢极客们。这对我改善数据结构和解决问题的能力有很大帮助。希望这对你有帮助。祝你一切顺利。
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。