📜  亚马逊专访 |设置 8

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

亚马逊专访 |设置 8

我最近就 SDE1 在他们的 TRMS 团队中的职位采访了亚马逊。面试过程是难以想象的严格。

这是详细信息

第0轮:书面轮

Interviewstreet Test – 2 小时内完成 2 个问题

Q1 : 计算表达式 (2+3)*5 .. 刚才的问题说这个.. 我想我们必须做出自己的假设来解决这个问题

Q2 :如果两棵树具有相似的结构,则可以称为同构树,它们之间的唯一区别是,它们的子节点可能会或可能不会被交换。

例如

——4

——2——6

–1–3–5–7

——4

——6——2

–1–3–7–5

是同构的......树是相似的,一些节点的左右孩子交换了......

给定两棵树,确定它们是否同构……

面试街的人将我的第一个问题的解决方案标记为错误,即使它运行良好。当我告诉人力资源部有关情况时,她与一些亚马逊人核对了一下,他们对此表示满意。

我通过了笔试。

电话采访1

Q1 :在二叉搜索树中找到第 K 个最大的整数。当我告诉她像极客给极客那样的解决方案时,她让我使用递归来做。

Q2 :给定一个正整数数组,找到可以由排列的任何排列形成的最大值。我告诉她一个逻辑。然后她让我只写比较函数来选择一个数字放在另一个之前。

当我给面试官直截了当的答案时,她更加曲解了这个问题。可能他们想看看我是如何思考和解决问题的。

电话采访2

Q1 :给出了一个二叉搜索树,它的两个节点互换了。我必须找到两个节点。

Q2 :识别给定数组中的所有毕达哥拉斯三元组。

这一轮我通关了。人力资源部告诉我,我必须来班加罗尔进行面对面的面试。 (所有行程安排均由亚马逊自行安排)

个人访谈 1

Q1 :在一个具有最大和的一维数字数组中找到连续子数组的总和..我不知道一个解决方案(kadane的算法),但不知何故我能够在面试中解决它..面试官喜欢我的接近方式并确实有所帮助

Q2 :如何最好地使用堆栈实现队列。时间复杂度是多少?

能够很快做到这一点。

个人访谈 2

Q1:在给定的字符串中查找非唯一字符。我告诉她一种 O(n^2) [蛮力]、一种 O(n logn) [排序然后比较相邻元素] 和一种 O(n) [将字符数存储在数组中] 方法。然后她让我在 O(n) 中做它而不使用数组。

毫无头绪,她终于告诉我她希望我使用 BIT Vector。我与 Bit Vectors 交谈得不好,我告诉了她……她仍然要求我多想。最后她告诉我一个使用相同的解决方案,这在单独的采访中是不可能想到的,尤其是当一个人不知道什么是 BIT Vectors 时。当我陈述这一点并接受我之前的 O(n) 解决方案时,她同意了,我们继续进行下一个问题。

Q2:给定一个整数数组,用除当前索引元素之外的第一个数组元素的乘积填充另一个数组。

在这里,当我给她一个 O(n) 解决方案[找到产品并将其与当前元素相除以获得该索引位置的数字]时,她要求我在没有除法运算符的情况下这样做。给她一个 O(n^2) 的解决方案。但我想不出更好的办法。最后,就在她开始告诉我 O(n) 方法时,我想起了 geeksforgeeks 解决问题的方法并把它给了她。应该是她没有考虑。 (不确定)

个人访谈 3

这次采访是与亚马逊的招聘经理进行的。他首先问了我几个人力资源问题,比如为什么选择亚马逊?我们为什么应该录用你?项目,实习等..?你会如何处理与队友的分歧?等等……

然后他问了我一个编程问题。

:他在黑板上画了一个圆圈,并在上面标记了几个点。将它们命名为 X1、X2、X3 ..

然后他说这些是加油站,你必须找到正确的加油站,汽车应该从那里开始循环,这样它就不会在完成一个回合之前用完油。然后他坐在了桌子上。

(对不起,但我将不得不详细描述它以告诉您它是如何向我提出的......并且偏离路线以使问题本身更加清晰......)

我不清楚我必须做什么以及可以获得哪些信息,我问了他几个问题。

为什么从第一加油站加油后汽车会用完油?

他说每个加油站的汽油量都是有限的(比如说X1),在从这个加油站加油后,甚至在到达下一个加油站之前它就可能用光了(任何事情都可能发生,它可能能够穿过下一个加油站但运行在完成回合之前稍后出局..)。所以我必须找到一个加油站,汽车应该从它开始循环,这样它在完成循环之前永远不会用完油。

那么汽车能否在下一个可用的加油站加油,如果它能够弥补呢?

是的

我们是否有关于从一个汽油泵到达另一个汽油泵所需的汽油量的信息?

是的

我假设汽车油箱足够大,可以装满尽可能多的油。

然后我画了两个数组,一个是每个站的gas量,另一个是从这个站到下一个站需要的gas量。

可用燃料:X1、X2、X3、X4、X5

到达下一站所需的燃料:Y1、Y2、Y3、Y4、Y5

他说好,让我继续。

然后我把差 (Y1-X1), (Y2-X2) .. 存储在一个数组中.. 然后我突然想到这变成了一个简单的问题,即在一个数组中找到一个连续子数组的最大和(圆)。他喜欢我的方法,并要求我对其进行编程。做到了,并向他展示了我编写的代码的试运行。他没意见。

(面试后我感觉很好,因为在那里我根本没有绊倒..)

个人访谈 4

Q1:我们有一个带有大括号'()'的大文件[只有一种类型..] 查找它们是否平衡..(堆栈在这里不起作用,因为您可能会用完存储堆栈的内存..)当我给了他另一个解决方案,他让我使用并行流程来做。我告诉他要详细说明..(说实话我不熟悉并行流程)..最后我告诉他了..他让我再考虑一下..

我们讨论了大约 20 分钟。没有到达任何地方,他继续问我下一个问题。

Q2 :找出包含主串所有字符的最小子字符串。我再次对此有一个解决方案。我给了他一个 O(n^2) 的方法。他让我进一步思考,因为我接近它的方式就是解决它的方式,我可以利用获得的最后一个子解决方案来提高我的复杂性。什么都想不出来,我们终于转移到第三个问题。

Q3 :给定分数的分子和分母,不使用除法和模('/','%')运算符求商和余数。这很简单。我做到了。然后他要求写出我的解的不变量,即分母*商+余数=分子。

然后他让我想想分子和分母中的一个或两个都为负数的情况。我们几乎没有时间,所以他没有给我时间思考,就结束了采访。他想让我写一个不管输入如何都是真的不变量。现在想起来,我应该说|分母|*商+余数=|分子|

晚上飞回家。

2 天后,HR 告诉我我没有成功。🙁

这可能是我经历过的所有面试中最困难的一次。

希望它对你们中的一些人有所帮助..

亚马逊的所有练习题!