📜  亚马逊面试经历 | SDE-I

📅  最后修改于: 2022-05-13 01:58:15.694000             🧑  作者: Mango

亚马逊面试经历 | SDE-I

线上回合:

测试模式:两个编码问题,28 个 MCQ
时间:1小时30分钟

MCQ 完全基于与 C 程序的输入/输出有关的问题。观察到的一般模式是问题中会有一个代码片段,并且必须提供该特定程序的正确输出/错误。

编码问题包括:

  1. 计算数字的阶乘中的尾随零
  2. 给出了一个坐标平面。在每个点 (x, y) 上,上面有 x+y 个苹果。一个人站在 (0, 0) 上,他想买一块正方形地块,里面有 N 个苹果(包括外围)。如果给定 N 的值,则返回该正方形图的周长值

几周后,我被要求进行面对面的面试。两天内进行了四轮面试。

第 1 轮(技术)[60 分钟]
这一轮的问题很简单,有非常直截了当的解决方案。面试官问了以下问题。一旦我提供了正确的解决方案,他就在一定程度上调整了问题,并再次向我询问解决方案。在收到正确的解决方案后,他让我把它的代码写在纸上。

问题:
1. 计算矩阵中从左上角到右下角的所有可能路径
调整:在有障碍物的矩阵中计算从左上角到右下角的所有可能路径

2.在BST中查找节点的有序前驱和后继,其中节点也具有指针以及左右指针。

第 2 轮(技术)[120-150 分钟]
这一轮是整个过程中难度最大的一轮。我原以为这一轮会有一个简单中等的难度级别,但面试官有其他计划。他直截了当地让我解最长回文子串。我有点吃惊(因为动态编程并不是我的强项),然后坐在那里无所事事大约 10-15 分钟。

之后,慢慢地,想法开始出现在我的脑海中,我开始在纸上设计解决方案。每隔一段时间,面试官会问我在想什么,如果方法错误,会指出相互矛盾的情况。但过了一段时间,我意识到我的方法远非正确的解决方案,我的面试官也是如此。所以他开始向我提供一些隐蔽的暗示,比如“如果你从这个角度来处理这个问题…… ”。经过几次提示后,我走上了正确的道路并继续解决问题!

除此之外,他还问了我关于堆、堆的构建、插入和删除时间复杂度以及优先级队列的问题。

一轮结束后,我几乎可以确定我已经完成了这一天,但面试官又一次有其他计划!

第三轮(CS 基础)[30-40 分钟]
这一轮只专注于检查我的计算机科学基础。问题来自操作系统、DBMS 和计算机网络领域。难度级别很简单,因为他们只问了这个领域的基本问题。其中一些在这里提到:

  • 什么是死锁?
  • 如何检测死锁?
  • 给定进程依赖的有向图,编写代码来检测死锁。 (解决方案:有向图中的循环)
  • DBMS 中的 ACID 属性是什么?
  • TCP和UDP之间的区别

第 4 轮(技术 + 人力资源)[90-120 分钟]
技术问题:

  1. 从给定的列号中查找 Excel 列名(将解决方案写在纸上)
  2. 投币问题
  3. 操作系统中虚拟内存的需要和工作详解
  4. 页面和页面错误概述

人力资源问题:

  • 为什么是亚马逊?
  • 哪一轮面试最难,为什么?
  • 您是否解决了所有回合中的所有问题?
  • 鉴于你现在的公司也不错,为什么在你职业生涯的这么早阶段就换公司? (问这个的原因是因为我开始第一份工作只有两个月
  • 你在目前的工作中犯了哪些错误,你从中学到了什么?

一轮完成后,人力资源团队通知我,他们会在几天后回复我,你猜怎么着,我拿到了offer!

最后但并非最不重要的一点,我想列出我在这次面试过程中亲身经历的一些要点:

  • 面试官为候选人提供了足够的时间来思考、设计和编写解决方案。
  • 他们愿意通过提供提示并指出他/她的解决方案中的注意事项来帮助候选人以防他无法解决问题。
  • 与解决方案相比,他们更感兴趣的是检查候选人如何解决问题,以及如果提供一些帮助,他/她是否有能力解决问题。
  • 使用笔和纸编码风格测试候选人的编码技能。

期待与您在亚马逊合作。
祝一切顺利! 🙂