📜  亚马逊6个月实习面试经验| 2020年校内

📅  最后修改于: 2021-11-10 06:35:19             🧑  作者: Mango

没有资格标准。但是,只有 CSE、ECE 和 EEE 分支机构被允许参加。

第一轮(在线评估:)这是在 AMCAT 环境中进行的。评估包括四个部分。您无法在不同部分之间切换。任何部分结束后,您都可以花时间转到下一部分。此外,您必须按顺序执行这些操作。即使您提前完成任何一轮,剩余时间也不会添加到下一轮。

  1. 首先是代码调试部分(20 分钟),由 6 个带有一些逻辑或语法错误的代码组成,您必须确保这 6 个问题中的每一个都通过了所有测试用例。
  2. 其次,有一个编码测试(70分钟),有两个问题:
    • 克隆带有下一个和随机指针的链表。

    • 在给定图中查找关键连接

    您可以在这两个问题之间切换。在提交代码之前,您可以选择运行和测试代码。不知道有没有超过两套,不过有朋友也有这个疑问:

    • 合并两个已排序的链表

工作风格评估(20 分钟)和推理能力部分(35 分钟)。

已记录浏览器使用情况,因此请勿打开新选项卡或切换到任何现有选项卡。在推理部分,我无法跳过并返回问题。考试没有通过网络摄像头/麦克风访问进行监考。

共有 20 名学生被选入下一轮。大多数学生都完成了两个编码问题,所以不要掉以轻心。

第二轮(视频面试):这是一轮视频面试。我必须为通话安装 Amazon Chime 软件,并且必须共享我的屏幕。我还得到了一个链接,面试官可以在其中输入问题,我可以编辑代码。这轮面试我有两个面试官。

首先,他们说面试将如何进行,并先从他们自己的介绍开始。他们说我会被问 2 个问题,我必须在编码之前解释我的方法。我被要求自我介绍,一些问题与我的介绍有关。

然后我被问了两个问题:

  1. 搜索由字符流的第一个非重复的字符。
  2. 腐烂所有橙子所需的最短时间,第二个问题只是一点点变化,二维网格中也有障碍物。

对于第一个问题,我问如果没有 nonrepeating 字符返回什么。第二,我问如果障碍物完全挡住了橙子的气味,我应该回去。

这一轮耗时1小时30分钟。我说出了我的方法,如果他们满意,我就会被要求对其进行编码。在我的解释过程中,他还给我提示了我被卡住的地方。但让我自己得出答案。我被允许用笔和纸工作。在编码之前,有人问我我的方法的时间复杂度。这两个问题几乎相似。我还被提醒分配给给定问题的剩余时间。代码没有针对任何测试用例运行,但他手动验证了我的代码。

我不知道有多少学生有资格参加下一轮,因为下一轮的会议链接是亲自邮寄的。

第三轮:H出现在当天晚上。这一轮与第二轮几乎相同,只是我必须在这一轮中解决 1 个编码问题,而下半场是关于项目的。面试官自我介绍,让我做自我介绍。他对我作为技术团队成员所做的一项活动感兴趣。

然后我们继续我的编码问题。

  1. 上一个更大的元素。它不是之前的更大元素,而是之前的最大元素。

在这个问题中,我得到了两种情况,一种是离线运行查询,一种是在线查询。对于离线查询,最快的方法是对查询进行排序并在我上升到梁的高度时为每个查询返回答案。

对于在线测试用例,我们必须单独检查每个查询。所以,我的逻辑是从左到右遍历建筑物阵列的高度,并在处理任何查询之前继续保存与梁将撞击的建筑物索引相对应的梁的最大高度。

例如

building height array - 5, 2, 5, 7, 5, 8, 10
my array will be - {5,0}, {7,3}, {8,5}, {10,7}

因此,对于每个查询,0-5 个答案将是 0,5-7 个答案将是 3,7-8 个答案将是 5,8-10 个答案将是 7,等等。

现在,对于每个查询,我将只使用二分搜索(因为结果数组将按 a/c 排序到第一个元素)从数组的第一个数字中找到一个大于或等于查询的数字并返回对应的第二个数字。

我问如果梁的高度正好是建筑物的高度会发生什么。

然后我们继续这个项目,我可以自由描述我最近参与的任何项目。我向他解释了我在实习中所做的一件事。先生没有问与机器学习相关的问题,而是问了我在项目中采用的方法,如果我可以使用其他方法的话。我非常简要地描述了整个项目以及我面临的问题、我在方法中所做的改变、一些已经存在的系统和缺点,以及其他一些具有更好优势但为什么我没有使用它的系统。我使用了哪些库以及这些库的任何替代方案。如果您所描述的项目是您自己单独制作的,您会发现很容易回答。

同一天晚上的结果出来了,我和另外两个人被选中参加六个月的实习(PPO 基于表现)。

我的建议是保持冷静和自信,与面试官进行良好的互动。

就亚马逊而言,这些要点将非常有帮助:

  • 永远不要从问题中假设任何东西,始终向他询问您发现问题未涵盖的任何条件。面试官肯定会说这是个好问题并回答。
  • 编写干净的代码,面试官可以轻松阅读和理解,甚至不需要你解释。
  • 取适当的变量名
  • 始终说出您对这种方法的看法。
  • 时间复杂度将是您的方法中考虑最多的因素之一。
  • 在你的介绍中,要非常自信,不要只是捏造脚本,也不要让它太技术化。
  • 如果您自己完成了该项目,您将非常轻松地完成与项目相关的问题。