📜  亚马逊 SDE-1 面试体验(校园内)

📅  最后修改于: 2021-11-18 01:22:30             🧑  作者: Mango

第 1 轮(在线测评 2 小时 30 分钟):测评由四部分组成,代码调试部分(20 分钟)、编码测试(70 分钟)、工作作风评估(20 分钟)和推理能力部分(35 分钟) )。

编码测试题:

  1. 给定一个数字 x,以及一个按行和按列排序的矩阵,检查 x 是否存在于矩阵中。
  2. 给定一个链表,创建该链表的副本并返回一个指向新链表头部的指针。

第二轮(在线面试 30 分钟):

  1. 关于树和图的小讨论
  2. 给定一个有向图,检查它是否是一棵树。编写完整干净的代码。

第 3 轮(在线面试 1 小时):

采访者:选择你的任何一个项目,我们再讨论。

对项目进行了详细的讨论。面试官问了很多与方法、实施、结果等相关的技术细节,以及诸如“最具挑战性的部分是什么”等非技术问题。这花了 30 分钟。

设计问题:我们有一个不断生成日志的系统。比如说,每分钟记录一些日志。每个日志都有一个时间戳。日志类型可以是错误、信息等。我们只对错误日志感兴趣。错误也可以有多种类型。

Timestamp  log type sublog type noOfInstances
7/12/2020 12:35:00 Error  abc  2
7/12/2020 12:36:25 Error  xyz  3
7/12/2020 12:36:25 Info   pqr  2
7/12/2020 12:37:20 Error  xyz  1

在任何时候,我们都希望从当前时间获取过去 t 分钟内的错误类型及其实例数。 t 的值取决于查询。此外,您应该能够说出最近 t 分钟内实例数最多的错误名称。
面试官,然后进一步要求说出最近t分钟内实例数最多的前k个错误名称。

还有一些小问题,例如“您将如何存储数据”、“您将如何执行此操作”等

第 4 轮(在线面试 1 小时):

  1. 给定一棵二叉树,将其转换为其镜像树。我写了一个递归函数,它的返回类型是 void。面试官进一步要求再写一个解决方案,使用非空返回类型函数。然后是比较两种方法、递归堆栈、最坏和平均情况时间复杂度等的小讨论
  2. 给定一个 BST、一个节点值和一个整数 K。打印与给定节点距离为 K 的所有节点。与节点距离为 K 的节点可以在所有 3 个方向上。左路径,右路径,通过父路径。面试官进一步要求对二叉树做同样的问题。

我能够一次性回答所有问题并编写无错误的干净代码。收到offer了🙂