📜  亚马逊面试经验|设置225(1年经验)

📅  最后修改于: 2021-09-23 05:48:28             🧑  作者: 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) 将二叉搜索树转换为二叉树,其中值为
树中的每个节点等于所有大于它的节点之和。

3) 用随机指针克隆一棵二叉树。

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

1) 给定一个数组,指示一天内每天的股票价格。在任何一天,您都可以:
a) 只买一只股票。
b) 卖出您购买的任意数量的股票。
c) 什么都不做。
找出通过给定 n 天的价格数组进行交易可以获得的最大可能利润。

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

3)给定一副n张牌,在每次迭代中,最上面的一张牌被移走并推到最后,第二张牌从一副牌中移出。例如:在第一次迭代中,第 1 张卡将添加到末尾,第 2 张卡将被删除,再次将第 3 张卡添加到末尾,第 4 张卡将被删除,依此类推。找到将剩下的最后一张卡片。

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

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

3) 给定两个有效的三字母词典单词,找出将第一个单词转换为第二个单词所需的最少步骤数。以下是转换规则——
a) 您可以在一个步骤中更改单词中的单个字母。
b) 每个转换都应该产生一个有效的字。假设你得到了一个辅助函数boolean isValid (String word),它告诉你一个词是否有效。
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的区别。

还有几个问题,我现在不记得了。

Face to Face Round 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) 现在写一个相同的递归解决方案。
我花了很长时间想出这个问题的递归解决方案,但最终解决了它。

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

亚马逊的所有练习题!