亚马逊专访 |第 39 组 (SDE)
我最近参加了亚马逊校外招聘活动的步入流程。这是在钦奈的 SDE 职位。我想和 Geeks for Geeks 分享我的面试经历。
书面回合:
a) 给定一个链表和 2 个整数 M 和 N.. 保留 M 个节点并重复删除 N 个节点,直到链表结束。
b) 给定一个 BST ,用大于当前节点的所有元素的总和替换一个节点值。
我可以用反向中序遍历和一个 int 指针来解决它来跟踪总和。
c) 给定一个 BST 和一个值,检查从根到叶的路径总和是否等于给定值。
F2F 第一轮:
a) 将两个由数字表示的链表相乘。只需要一个链表来做所有的加法和存储结果,即,中间加法不应该用额外的链表进行,最后计算结果。
b) 给定一个 BT 检查其中是否有 BST。如果存在,则打印 BT 中最大的 BST。
c)给定一个包含大量单词的大文件,将单词的字谜分组
你好吗。 iahohw 完成了。
o/p:
嘿->啊
如何->哇->哦
完毕
是
F2F第二轮:
a) 给定一个链表,打印第 n 个最后一个节点。他让我给出优化的解决方案。
使用慢速指针解决。
b) 在二叉树中找到 LCA
他让我用自下而上的方法优化代码,并给出了很多边界条件
c) 给定一个 zigzag 遍历,从中构造一棵树。询问了完整的工作代码。
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 1 3 16(CAACP) , 3 1 1 3 1 6 ,(民航总局)。给定一个输入编码字符串,找到编号。它可以被解码的方式。 (Spoj 中的 ACODE 概率)
311316 - 4
-> 一开始想不出DP解决方案,所以给出了一个带有递归树的解决方案。他让我优化以避免不必要的计算。最后使用DP解决了它。
第 4 轮 F2F (Bar Raser 轮):
这一轮从我迄今为止所做的项目开始。云计算中的几个基本问题。我在我的一个项目中使用了 Amazon Web Service (AWS)。
a) 关于 AWS 的很多问题。为什么我们在有这么多替代品时使用它。
b) 当我用可扩展性问题说服他时,他就 AWS 如何处理负载平衡和可扩展性问题提出了问题。
c) 显然是关于 Elastic Map Reduce 和 Elastic Block Storage 的问题。问题堆积如山,直到我能解释那个项目的每一个角落。
d) 优势和劣势。
e) 为什么选择亚马逊,为什么我要在 2 个月内离开我以前的公司。
f) 给定一个带有随机指针的链表,克隆该链表。
给出了几个解决方案,他让我在不操作原始链表但有额外空间的情况下进行克隆。使用 HashMap 进行了一些小调整
Map < node * , node *> 键是节点,值是随机 ptr 节点。
g) 在没有额外空间的情况下,在给定的 BST 中找到一个值的上限和下限。
如果 BST 包含 1 3 6 7 9 12
-> 如果给定值为 8,则 floor 为 7,ceil 为 9。
-> 如果给定值是 9,则 floor 和 ceil 都是 9。
PS 在解释你的项目时要谨慎。
第 5 轮 F2F:(招聘经理轮):
关于 AWS 的项目和优势的几个问题。
a)问我不同的进程间通信方法。
b) 哪种方法更快,为什么。然后他让我解释一下共享内存
c) 要求编写代码来实现 LRU 缓存。
d) 然后给定一个数组的 malloc 实现代码。
e) 他让我为给定的场景编写一个线程安全的代码。
给定两个写入线程和两个读取线程。提供一种机制来处理写入者和读取者线程。写入器线程在队列或数组中写入值 1 2 3 4 ,读取器线程读取它并将输出打印为 1 , 2 ,3 ,4 .....以与给定相同的顺序并且仅一次...
-> 我用一个二进制信号量和一个读写器的队列来处理它。
f) 僵局的条件,他让我联想到现实生活中的场景。
互斥和所有的情况。
g) 不同类型的调度以及 linux 有什么类型的调度器以及为什么。
h) linux 是否有抢占式调度和关于虚拟内存的一些问题。
他只是分析了我解决问题的方法,并检查了我对操作系统概念的基本理解。
两天后终于收到亚马逊的offer。我非常感谢 GeeksForGeeks。它帮助我提高了我的数据结构和解决问题的能力。希望这会帮助你。祝一切顺利 。