亚马逊专访 |设置 21
最近我在SDE1经历了我梦想中的公司亚马逊的10轮面试,我被选中了。我唯一的准备资源和图书馆是 GeeksforGeeks,如果你的目标是亚马逊、微软等大公司,这是最好的技术准备网站。我不太有信心参加面试。面试经历博客给了我勇气和编码经验来破解所有回合。请务必关注此网站以获取每次更新,并建议您的朋友在他们尝试换工作以及他们的目标是大公司时关注。
我正在分享我的面试经验,这将有助于其他人。
总回合数:10
1 次在线笔试 + 4 次电话 + 5 轮 F2F 筛选。
在 F2F 回合中,每个问题都需要完整的可执行代码 + 算法。
在所有回合中,都将获得最佳解决方案(复杂性较低)
在线笔试:
1. 找出数组中的最大频繁数。如果有更多具有最大频率的数字,它们将按升序显示所有数字。升序很重要。
2. 用链表表示的两个数字。 (大于整数)。返回一个链表,它是给定两个链表的乘积。
1->2->3->空 (123)
2->3-空 (23)
O/P:2->8->2->9->空
第一次电话筛选(45 分钟):
1. 找一个链表里面有圈,如果有圈,就找圈的原点。
2. 在链表中,Node 有两个指针,一个指向下一个节点,另一个指向链表中的任意节点。编写一个函数以返回一个新列表,该列表是给定链表的克隆。
3. 一个数组被排序并旋转k次。在数组中查找一个元素。 (期待高效的对数时间解)
第二次电话筛选(45 分钟):
1. 两个字符串s1,s2 作为输入。删除 s1 中存在的字符,这些字符存在于 s2 中。
2. 如何找到集合中子集的数量。
3. 搜索按行和列排序的二维矩阵中的元素。
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8 在其中找到一个元素。
4.归并排序和快速排序的区别。您如何改进快速排序(考虑选择枢轴元素)。
5. 给出最坏情况下快速排序的场景。
6. 如何在内存中存储一个集合,我们使用什么 ADT 以及每个 ADT 的权衡。
第三次电话筛选(35 分钟):
1. N-Petrol bunk 问题:有 n 个汽油铺位在一个圆圈内。我们有一辆每 1 升行驶 1 公里(里程 1kmpl)的卡车。给出了两个数组。汽油铺位之间的距离在一个数组中给出。其他数组包含每个汽油铺位可用的升数。我们必须找到起点,这样如果我们从那个点开始,您就可以在不耗尽燃料的情况下游览整个圈子。最初卡车没有燃料。
2. 大小为 k 的组中的反向链表。
I/P:1->2->3->4->5->6->7->8->空 k = 3
O/P:3->2->1->6->5->4->8->7->空
第四轮(35分钟):
1. 给定 Pre 和 In order 遍历的构造树的算法。
2. 树的有序继承者。
3. 线程二叉树(无递归中序)
F2F 第 1 轮(招聘经理 60 分钟以上):
1. 告诉我你自己和你工作的项目。
2.关于你经历的项目中最危急的情况。你是怎么做到的。 (他需要完整的场景解释)
3. 如果他给出与面试问题相同的场景,您将如何提高代码质量及其复杂性。
4.关于你关注的SDLC。你喜欢哪一个,为什么。
5.你有什么问题要问吗(非常重要的一个——问一些关于他们工作的项目等问题。好兆头)
F2F 第 2 轮(开发人员 60 分钟):
1. 说说你自己。
2、二叉树之字形遍历。 (希望您提供更优化的解决方案)。应该编写完整的代码,他们将稍后检查。
3. 一个机器人在二维空间中,可以向左移动。你会得到一个数组,它是机器人的移动,从原点(0,0)开始。找到它覆盖的矩形。
I/P:{ 2,3,4,5,6,1,3,5,5} 从 (0,0) 开始
O/P:矩形点:( -4,4 ) 到 (4,-2)
4.关于招聘过程的随意讨论。
F2F 第 3 轮(开发者 50 分钟):
1.数据结构在O(1)时间内插入、删除最新项、找到最小值、找到最大值。 (给出哈希,二维,链表,很多..他在这里印象深刻)
2. 一棵树的垂直总和。 (按列求和——可以在 geeksforgeeks 中找到相同的)
3. 在连续排序的数据流中找到第 n 个数字。
I/P:{1,2,3,4,5,6,7,8,9,1,0,1,1,1,2,1,3,1,4,1,5,1,6 ,1,7,1,8……无限} n =28
O/P:第 28 位
以上所有的复杂性分析。
F2F 第 4 轮(开发人员 45 分钟):
1. 螺旋打印矩阵。
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
输出: 1 2 3 4 5 10 15 20 25 24 23 22 21 16 11 6 6 8 9 14 19 18 17 12 13 18
2. 编写一个函数来检查左括号和右括号的语法是否正确。
3. 如果你有 k 种大括号('(' '[' '{' ,…. K types) 都具有相同的优先级,则同样的问题。
4. 同样的问题,如果你有 k 种大括号('(' '[' '{' ,…. K types) 都具有差异优先级。
5. 打印 k 对大括号的所有有效组合。
6. 返回上述组合的计数,而不使用打印它们的算法。
7. 记忆——你知道吗?请解释一下。
F2F 第 5 轮(提高杆轮)60 分钟:
1.亚马逊遵循的领导者原则
2.关于项目。
3. 你为什么要离开前公司,什么会阻止你。
4.字符串集按字典顺序给出。这里的问题是顺序不是我们的字母顺序。它可能会有所不同。 C 可能在 a,b 之前,x 可能在 d,c 之前。等等。您必须使用给定的输入来查找字符的顺序。 (拓扑排序——需要完整的代码才能写)
5.二叉搜索树成有序双向链表(Expected Inplace算法)
要记住的事情:
1.对于每一个问题,先给出一个简单的解决方案(可能有更多的时间复杂度),然后考虑最优的解决方案。
2.以清晰的方式编写代码。没有你的解释应该是可以理解的。
3.能够说明您将要编写的代码的复杂性。
4.首先告诉算法或方法,然后继续编写代码。
5.不要犹豫,要求澄清。他们会留下深刻印象。
这都是我这边的。祝你好运。
再次感谢 GeeksforGeeks,一个适合技术人员的可爱网站。