亚马逊面试经验(SDE-1)|校外 |招聘驱动
大家好,亚马逊于 2019 年 7 月在浦那进行了 SDE-1 和 SDE-2 的驱动。我申请了 SDE-1 的职位。我接到了一个招聘人员的电话,他特别告诉我要更新我的编码和数据结构基础,并告诉我在纸上练习。
第1轮:
第一轮是纸上编码测试。我们被要求在纸上写三个问题的代码。
1)当你问 Alexa“买香蕉”时,我们会查询不同的目录(Prime、Whole Foods、Pantry 等)。每一个都返回一个排序的项目列表,我们需要将它们合并在一起以得到一个列表。写合并结果并显示前 10 项的函数。还请提及您的解决方案的时间和空间复杂度。
当您可以使用优先级队列来维护前 10 个项目时,此问题类似于 Merge K-sorted list。
2)给定一个公司的管理链树。如果链中的每个报告者都有指定编号,则打印每个员工的姓名。
管理树图片
输入:1
输出:
兰尼斯特
布隆
3)实现在给定时间窗口内阻止会议室的函数。会议室不能为重叠会话预订。
输入:(11:00, 13:30)
输出:
预定会议(如果与所有现有会议没有冲突)
会议被拒绝(如果与任何现有的已预订会议冲突)
一个小时后,他们宣布了笔试的结果。
第 2 轮:
这一轮面试官问了4个问题。
1)计算到达迷宫目的地的方式数量
2) 给你 n 只袜子和每只袜子的颜色。你还得到了哪一天穿哪只袜子的描述。找出必须改变颜色的袜子的最少数量,这样你就可以在每天的两种袜子颜色必须相同。
例子:
颜色:2 3 1 4 5
袜子:1 2 3 4 5
日 - 袜子没有
1 – 2, 3
2 – 1, 5
3 – 2, 4
找到最少数量的袜子,我们可以改变它们的颜色,以便在任何一天两只袜子的颜色都相同。
这个问题可以通过将特定的日袜假设为图的一条边来解决。
3) 在已排序的旋转数组中查找元素。
4) 找出图中连通分量的数量。
https://www.geeksforgeeks.org/connected-components-in-an-undirected-graph/
第三轮:
在这一轮中,我被问及我在微服务方面的工作经验以及我在项目中使用的缓存用例。
他问我 Spring Boot Framework 的基本原理以及 Spring 和 Spring Boot 的区别。
他让我编写一个代码来生成随机数,而不使用Java.lang。
第四轮:
在这一轮中,面试官问了我关于设计的问题。
1)考虑有一个客户访问的网页序列组成的日志。我们必须在所有客户的网页序列中找到出现次数最多的长度为k的序列。
例子:
日志 1- p1->p2->p3>p4->p5…
日志2-p3->p4->p8…
Log3- p2->p3->p10…等
所以 p2->p3 将是出现次数最多的长度为 2 的网页序列。
他还询问当不同的日志文件来自系统中的不同主机时,我该如何处理同步。
2)考虑有一本书。我被要求编写代码来查找书中单词出现之间的最小/最大距离(此处的距离是指页数)
他让我写一个数据结构来定义一本书和另一个数据结构来定义一个索引。