📜  亚马逊专访 |第 87 组(用于 SDE)

📅  最后修改于: 2022-05-13 01:57:21.105000             🧑  作者: Mango

亚马逊专访 |第 87 组(用于 SDE)

我最近清理了 Amazon SDE 的职位。在我的准备过程中,GeeksforGeeks 发挥了重要作用,这是我在准备阶段 90% 以上的时间都参考/关注的唯一网站。

请在下面找到我对亚马逊的体验。
1 笔试
1)给定一个数字数组,找到每个元素右侧的下一个更大的数字

Example-    Input     12 15 22 09 07 02 18 23 27
            Output    15 22 27 18 18 18 23 27 -1

2)给定一个链表并输入int K,在K个大小的槽中反转链表

Example Input 12--> 13--> 3--> 20--> 55--> 87--> 20--> 77--> 90 Lets k =3
Output 3--> 13->12--> 87--> 55--> 20--> 90--> 77--> 20

3)给定树和输入int K,打印距离叶子k距离的节点。
输入在树下方,k = 2

图片

输出 2、5、4

2. F2F 第一轮(DS 和 Algo)
小组中有两个面试官,只有一个在问问题,另一个只是观察,他记录了我们之间发生的所有对话,并注意到我提供的方法和解决方案。这在所有面试轮次中都很常见。

1)分别给定一个无限的 O 和 1字符串。您需要找到从 0 到 1 的过渡点。
我在 O(n) 中给出了本机解决方案。他告诉要优化更多。不能对其应用直接二进制搜索,因为字符串是无限的并且没有给出字符串的长度。
我告诉过我会将字符串分成 10 个大小的插槽,这将降低复杂性。他仍然告诉要优化更多。我告诉过我会以 2 的幂为单位增加插槽大小,例如 2、4、8、16、32。他对此很满意。
他通过添加现在我的字符串按排序顺序包含 0、1、2 再次使其复杂化。您需要找到从 0 到 1 和 1 到 2 的过渡点。我提供了方法。
在那之后告诉这次我想让它通用。字符串可以包含 0 到 n(input) 个数字来查找所有转换点。我解决了,他对方法很满意,并告诉我为它编写代码。

2)从两个有序数组中找出共同元素

3. 第二次 F2F(DS 和算法)

1)我破解有点困难,她说从Java克隆问,这是我的弱点。给定一个包含字符串名称和对朋友的引用的类,如下所示。

Class A {
   A(String str, Person P { //Constructor
       this. name = str;
       this.friend= P ;
   }
   // override
   Clone() {
       // code for this function was expected from me
       // which can produce the deep copy
   }
}

假设 A–>B–>C–>D 表示 A 是 B 的朋友,B 是 C 的朋友,依此类推。
调用一次 Clone 方法将克隆整个朋友列表,例如
A'–>B'–>C'–>D'(其中 A' 是 A 的克隆)。
破解这对我来说真的很难,因为我不熟悉这些问题。

2)如何从单链表中找到最后第n个元素,这对我来说很容易。
在 2 分钟内解决并快速编写代码。

3)给定一个由数字、值 K 和值 X 组成的排序数组,找到最接近该值的 K 个数字
示例:输入 12 16 22 30 35 39 42 45 48 50 53 55 56 K = 4 X = 35
输出 22 30 39 42
面试官的时间不多了,因为第一个问题花了很多时间。所以她告诉只告诉方法,代码不是预期的。

4.第三F2F(酒吧提升者)

面试官性格友好。他非常资深,非常酷。从我的项目问题开始,然后是一些行为问题,最后是一个技术问题

您当前的项目是什么,到目前为止您在项目中添加了什么价值。
您在项目工作中遇到了哪些挑战以及您是如何克服的。
在上一个项目中,你学到了什么重要的东西。
如果您可以选择回到 3 年的生活,那么您想在生活中改变什么,意味着您想要获得或改变哪些技能和步骤/决定。
你过去所做的让你感到自豪的事情.. blaa blaa ....
给定一棵树,你将如何找到节点的垂直总和
请参阅此链接以了解有关问题的更多信息
以垂直顺序打印二叉树
我使用哈希图给出了解决方案,但他对答案不满意。他告诉给出其他解决方案,因为 Hash map 会增加空间复杂度。我使用了增加时间复杂度的数组解决方案,然后我使用了循环链接列表,最后使用双链接列表解决了它。他对解决方案很满意。告诉我为它编码。

5. Forth f2f round(OOPS、设计模式和操作系统基础)

从我的项目细节开始,我的项目是在android mobile,所以他告诉我设计一个“联系人应用程序”。类图和它们的关系是我所期望的。您可以在其中使用哪些设计模式。
解释继承和基类,你需要停止暴露基类方法而不接触基类。这真的很棘手。问题我喜欢它。
什么是死锁以及如何检测系统中的死锁。
数据库规范化的概念及其各种类型。
他还开始问一些网络问题。像 TCP/IP、socket 连接。
2 个用户之间的聊天如何在内部工作,数据包在内部如何在层之间流动。假设用户 A 向用户 B 发送“Hi”消息,而用户 B 刚刚关闭系统。在那种情况下会发生什么。

6. Fifth f2f (招聘经理)

为什么要加入亚马逊。
你对亚马逊了解多少。
当前项目说明。
您实施了哪些新代码以及它对其他人产生了多大影响。
给定一棵树,编写中序遍历。我使用递归在 2 分钟内编写了代码。
下一个补充是,您可以尝试使用迭代编写它并编写一些错误的代码。
他开始检查并告诉错误并告诉我纠正它。即使我在家里解决了同样的问题,但它仍然没有引起我的注意。我开始纠正它但失败了。之后面试官给了一个提示。我使用提示并再次解决了整个代码。他的时间不多了,所以拿了代码表并告诉我稍后会在空闲时间检查它。
请参阅此链接以获取实际解决方案和对最后一个问题的正确理解
无递归的无序遍历

给所有人的信息:-
亚马逊期望代码准确、精确、复杂性更低。所以首先和你的面试官讨论方法。不要跳入代码。
即使您不知道正确的答案,也要继续讨论解决问题的各种可能性,并尝试从不同的角度破解该问题。练习越来越多的真实性问题。

很多很多的祝贺作者。如果您喜欢 GeeksforGeeks 并愿意做出贡献,您还可以撰写文章并将您的文章邮寄至 review-team@geeksforgeeks.org。在 GeeksforGeeks 主页上查看您的文章并帮助其他 Geeks。

亚马逊的所有练习题