📜  亚马逊面试体验|套餐225(体验1年)

📅  最后修改于: 2021-04-23 21:33:00             🧑  作者: Mango

我最近接受了班加罗尔Amazon.com的采访。
这是我的面试经历

书面回合:
1)在已排序的循环链表中的正确位置插入一个数字。

For eg: 
a) Insert 25 in 10->20->30->40->50->10-----
     o/p : 10->20->25->30->40->50->10----
b) Insert 60 in 10->20->30->40->50->10-----
    o/p : 10->20->25->30->40->50->60->10-----

2)将Binary Search Tree转换为Binary tree,其中
树中的每个节点等于大于它的所有节点的总和。

3)克隆带有随机指针的二叉树。

第一轮面对面(技术性〜1小时)

1)给定一个表示每天某天股票价格的数组。在任何一天,您都可以:
a)只买一只股票。
b)出售所购买的任何数量的股票。
c)什么都不做。
在给定价格数组的情况下,进行n天交易,找到可以实现的最大可能利润。

2)给定一个带LED的am * n矩阵,每个单元代表LED的状态为ON(1)或OFF(0)。给定一个单元格位置,所有相邻(沿所有8个方向)单元格的状态与给定单元格的切换状态相同,效果级联。代表矩阵的最终状态。

3)给定一副n张牌,在每次迭代中,最上面的一张牌被移出并推到末端,第二张牌从该张牌中移出。例如:在第一个迭代中,将第一张卡添加到末尾,将第二张卡移除,再次将第三张卡添加到末尾,并移除第四张卡,依此类推。找到将要保留的最后一张卡。

第2轮面对面(技术性〜1:30小时)
1)给定一个布尔矩阵,将每一行排序,找到最大为1s的行。

2)给定一个段落和两个单词A和B,找出出现A和B的最小距离。

3)给定两个有效的三个字母的词典单词,找到将第一个单词转换为第二个单词所需的最小步骤数。以下是转换规则–
a)您可以在一个步骤中更改单词中的单个字母。
b)每个过渡都应产生一个有效的单词。假定已为您提供了一个辅助函数boolean isValid(字符串单词),该函数告诉您单词是否有效。
c)必须以最少的转换完成。
示例:将CAT转换为TOY。几种可能的转换之一是CAT-> CAR-> TAR-> TOR-> TOY
4)排序一个链表,该链表以升序和降序交替排列。
例如:

10->60->30->40->50->20 to 10->20->30->40->50->60

5)为未排序数组的每个元素找到下一个更大的元素。

现在有一些计算机科学基础知识:
1)说明在unix shell上输入“ ls”命令时在后台发生的情况。
2)进程和线程之间的差异。
3)什么是信号量和互斥量。什么是读写器问题?用代码解释解决方案。
4)TCP和UDP之间的区别。

我现在不记得了再问几个问题。

第3轮面对面Fa(招聘经理〜1小时)
1)告诉我你自己。
2)为什么要更改当前公司?为什么选择亚马逊?
3)告诉我你目前的项目。您的角色是什么?告诉我这个项目的架构。
4)浏览我的简历,询问其中提到的所有内容。
5)设计问题:为执行以下任务的移动设备中的键盘设计一个自动完成库:
a)从内置字典中键入时自动建议单词。
b)根据您以前的输入来建议单词:
例如:如果您经常键入“ Thank you”,那么如果您键入“ Thank”,那么您的图书馆应该建议“ you”作为第一个结果。
我被要求告诉我将使用哪种数据结构,并为此库编写类和方法。

面对面第4轮(提升棒〜1:30小时)

这轮比赛是由来自不同团队的两个人参加的,他们俩都是各自团队的标准杆提升者。我被要求在此回合中使用白板。

1)他们两个都对自己作了简短的描述。
2)告诉我你自己。
3)为什么要更改当前公司?为什么选择亚马逊?
4)告诉我你目前的项目。您的角色是什么?绘制该项目的体系结构。
5)然后一位面试官给出了一个C代码片段,并问我这段代码是做什么的?
您在这段代码中看到了什么问题?
6)将所有同级节点连接到二叉树中。
后续问题:
a)现在也连接所有非兄弟节点(基本上将所有节点都连接在同一节点上)
等级)。 (堂兄弟)
b)现在编写相同的递归解决方案。
我花了很长时间为这个问题提出递归解决方案,但最终解决了。

对于每个问题,我被要求编写生产级代码。

亚马逊的所有练习题!