亚马逊专访 |设置 33
我最近参加了班加罗尔亚马逊的软件开发工程师 (SDE-1) 培训。
这是我的亚马逊面试经历。
由于我来自同一个城市,所以没有电话面试。我列出了所有我记得的问题。
第 1 轮:数据结构、算法和编码(1 小时)
面试官刚开始就没有介绍和其他东西的问题。
1)给定一个单链表,每2个节点交换一次,输入奇数;保留最后一个节点。
例如:输入:5 13 15 18 20 11 6 7
输出:13 5 18 15 11 20 7 6
我被要求立即编写代码。
写了相同的,经过验证的边界案例并进行了讨论。
2)给定一棵二叉树,找出 2 个节点的值之和等于 k 的对数
例如:
1
2 3
4 5 7
说k=7,输出=2(2+5,3+4)
建议一种方法,我会使用它的中序遍历,
然后面试官让我解决简化的问题,在排序数组而不是树中找到k。
得到了解决方案,在每一端有 2 个指针,并相应地遍历。
我被问到将其扩展到 BST 的方法。
然后,我使用堆栈为 BST 实现了相同的功能。
第 2 轮:数据结构、算法和编码(1 小时)
1)给定输入为 k 个排序数组,生成单个排序列表作为输出。
例如:
阵列 1:1 5 8 9 11 …。
数组2:2 12 24 44 .....
.
.
阵列:3 15 79 115 …。
输出:数组1:1 2 3 5 8 9 11 12 15 ...。
讨论了方法和复杂性,然后编写了相同的代码。
2)给定一个函数isGreater,比较用户定义的对象,然后返回大于所有其他对象的对象。
扭曲:obj1 > obj2 和 obj2 > obj3 并不意味着 obj1>obj3
我问了同样的用例,因为我不相信这个问题。
他举了一个比赛的例子/一支球队赢了另一支球队。
讨论了方法,然后编写了代码。
3)给定一个输入句子,输出句子中不重复的单词。
4)地图是如何实现的?
面试官随后澄清了我关于亚马逊的问题。
第一轮和第二轮的难度都差不多。
如果面试反馈对其中任何一个不好,则该候选人被淘汰。如果其中至少有一项进展顺利,而其他人“不确定”,那么下一轮也将召集候选人。
第 3 轮:招聘经理轮(1 小时 40 分钟)
讨论了我目前的角色和职责
你为什么想加入亚马逊?
到目前为止,你在你的角色中取得了什么成就?
哪些方面你不擅长,需要改进?
二叉树的序列化。给定1次遍历是否可以重新构造二叉树。
编写代码以在给定任意 2 次遍历的情况下重建树。
我进行了按顺序和后序遍历,讨论了方法并编写了递归解决方案。
然后被问到迭代的方法。
第 4 轮:文化适应轮
这令人惊讶地首先有一个数据结构问题。
1)给定一个(大量)客户列表,其中包含在 n(大量)天访问过 n 个网页的客户,设计一个数据结构来获取恰好在“k”天访问过该网站并且应该至少访问“m”天的客户完全不同的页面。
然后被要求尽可能地即兴解决解决方案
2)我之前的项目和工作简介的详细信息
3)面临的挑战
4)我们为什么要雇用你?
然后,他回答了我的一些问题。
第 5 轮:编码、算法和数据结构(与高级开发人员的技术轮)
立即开始提问
1)二叉树的最小共同祖先(解决方案和代码)
2)给定一个垂直和水平排序的二维数组,搜索一个元素,如果元素存在则返回true。 (算法、代码和复杂性)
例子
1 5 13 29
11 16 25 38
45 49 52 57
51 54 59 66
3)计数排序的东西。
4)以之字形顺序打印二叉树..
5)金盒问题(方法)
有“n”个金盒子排成一排,每个盒子都有不同数量的金币。
2名玩家玩游戏,目的是收集最大数量的金币。每个玩家都可以看到每个盒子里有多少硬币,但只能在轮到他的时候从任一端得到一个盒子。
设计一个让玩家 1 获胜的策略(假设两个玩家都玩得很聪明)
在我最后一轮面试之后,几天后我接到了招聘电话。他们说反馈非常积极,他们很高兴雇用我。
太高兴了🙂🙂谢谢你..