亚马逊面试体验(校内)
亚马逊校园招聘:2019
第一轮(在线编码轮):
在 mettl 测试中,编码轮次长达 90 分钟。它由 2 个编码问题和 28 个 MCQ 组成。编码问题属于容易到中等的类别。第一个问题是通过一些修改将一个字符串更改为另一个字符串(几乎是实现问题)。在第二个问题中,给您一个仅包含 0 到 9 的字符串,并且您必须返回以 11 为模的字符串编号。大约 60 人被选中进行下一轮。
建议:如果您使用 c 或 c++,请修改您的指针概念,因为函数输入和返回类型是 mettl 上的指针。还要修改静态和动态内存分配,因为如果您不使用 new 或 malloc 分配内存,那么您的返回指针将指向 NULL(很多人被卡住了)。
Round-2 (Face-to-face-1):
面试官很nice,很冷静。他开始让我自我介绍。
Q1。给你两个链表。每个节点都包含一个 0 到 9 之间的数字。您必须创建一个包含两个链表总和的新链表。您也不能修改给定的链表。
例子 :
输入 1 - 头部->7->9->NULL。
输入2——头部->3->6->2->NULL。
输出-head->4->4->1->NULL。
Q2 。 XYZ 酒店想要在特定日期召开 N 次会议。您将获得每次会议的开始时间和结束时间。您必须返回 XYZ 酒店所需的最少房间数量。
例子:
输入 – N : 6, 会议时间 – [9:00, 9:45], [9:30, 10:30], [10:40, 12:00], [11:00, 13:00], [ 11:45、14:00]、[16:00、17:00]
输出 – 需要 3 个房间。
他让我为上述问题写下正确的代码。他用一些边缘测试用例对其进行了测试。然后他问我不同的排序技术和问题,比如“快速排序在哪些情况下运行 O(n^2)”。这一轮持续了一个小时。
第三轮(面对面面试-2):
面试官从问我自己开始,然后转到我做过的项目。在关于项目的一些问题之后,他从数据结构问题开始。我必须为这两个问题编写正确的代码。
Q1。给你一棵二叉树。您必须逆时针打印它的外边框。
Q2。您已经给出了 N x M 矩阵。矩阵中的每个元素都是 0、1 或 2。“0”数字表示该位置最初是空的。 '1' 数字表示该地方包含“好”芒果。 '2' 数字表示该地方包含“坏”芒果。在一天的迭代中,与任何“坏”芒果相邻(上、下、左、右)的“好”芒果将变成“坏”芒果。您从第一天开始,您必须找到没有“好”芒果或输出-1(如果不可能)的最短天数。
我在第一个问题上花了太多时间。所以,我没有为第二个问题想出优化的解决方案,只好给蛮力一个。这一轮持续了45分钟。
第四轮(面对面面试-3):
我觉得这对我来说是最困难的一轮,但我在几分钟内得到了解决方案。
Q. URL 请求来自某些服务器。现在您必须设计某种类型的数据结构,以便在任何时间点您都可以返回前 100 个频繁出现的 URL。
我想出了使用哈希图和堆的解决方案。但是我不允许使用 STL,所以我必须为 hashmap 和 heap 编写实现。然后他问了我一些关于操作系统、OOP 和 DBMS 的问题。这一轮持续了一个小时。
第五轮(面对面面试-4):
这是最后一轮。面试我的人看起来像一些高级开发人员。他盯着问我感兴趣的领域,我做过的项目等。然后过了一段时间,他开始问DP问题。
Q1。你给出了长度为 n 的棒和包含棒长度和价格的数组。现在您必须通过最佳切割棒来返回最高价格。
Q2。你给了一个数组。您必须为每个索引找到下一个最大值。 -1 如果数组中没有下一个最大值。
然后他开始询问操作系统问题,例如进程和线程之间的区别、什么是抖动、什么是进程表以及如何使用它、不同类型的 CPU 调度算法、什么是索引 (DBMS) 以及使用它们的原因和位置、互斥锁vs 信号量等。然后他问了我两个 SQL 查询。这一轮持续了一个多小时。
经过一天半的处理,我被选中参加亚马逊冬季实习。