📜  亚马逊面试经历 | 217(校内)

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

亚马逊面试经历 | 217(校内)

大家好……以下是我最近在我们学院招聘亚马逊的经历。

*** 第一回合 ***

:- Aptitude Round: (1:30 小时)
20 个多选题
关于输出、数学、算法、DBMS、操作系统的 MCQ。

:- 2 个编码问题:(onHackerRank)

1) 给定两个字符串Str1 和 Str2,查找 Str2 的任何字谜是否是字符串Str1 的子串(不区分大小写),否则返回 True,否则返回 False。
例如:如果 Str1 = Amazon 和 Str2 = zmao,输出:True

2) 给定 n 个非负整数表示每个条的宽度为 1 的高程图,计算下雨后它能够捕获多少水
例如,
给定 [0,1,0,2,1,0,1,3,2,1,2,1],返回 6。


**** 第二轮(F2F)(60 分钟)****

1) 检查给定的二叉树是否为 BST
2)找到给定两个节点指针的最低共同祖先
3)查找父数组表示的二叉树的高度

输入:父 [] = {1 5 5 2 2 -1 3} 输出:4

我在 O(n2) 中完成了它,然后面试官要求对其进行优化,然后我优化了代码,但仍然是 O(n2),但面试官对解决方案感到满意。

4) 在数组中查找下一个更大的元素
5)在链表中查找孤节点并循环。我给了他逻辑,面试官对方法很满意。

提示:面试官应该正确理解你的代码。所以写代码整洁干净。

***** 第三轮(F2F)(约 70 分钟)****

1)面试官再次问同样的问题:在数组中找到下一个更大的元素。我告诉他我在前一轮做过,然后面试官告诉我你告诉我这件事很好。
我想我从中得到了一些忠诚点🙂

2) 给定数学表达式。检查具有优先级约束的表达式中的平衡括号,例如
[2*{3+4}] = 真;
{2*[2+4]} = 假;

我给了他方法并为此编写了完整的代码。

3)如何检测图中的循环(我刚刚告诉我使用 DFS 的方法)

**** 第四轮(F2F)(120 分钟)*****

1) 考虑一排 n 个价值为 v1 的硬币。 . . vn,其中 n 是偶数。我们通过交替轮流与对手进行游戏。在每一轮中,玩家从该行中选择第一个或最后一个硬币,将其从该行中永久移除,并获得硬币的价值。
确定用户先移动还是后移动,以便他将获得最大可能的金额

我为此给了他递归方法,然后他要求为此优化代码,然后我为此制作 DP。

2) 考虑一张二维地图,一条水平河流穿过其中心。南岸有 n 个城市,x 坐标为 a(1) … a(n),北岸有 n 个城市,x 坐标为 b(1) … b(n)。你想用桥梁连接尽可能多的南北城市对,这样没有两座桥可以跨过。连接城市时,只能连接北岸i市和南岸i市。

我不知道这个问题我想了 10 分钟,然后告诉面试官我无法解决这个问题。但是面试官问了我的方法,然后我给了他暴力解决方案,面试官问了代码。然后他告诉我优化代码,然后我给出了递归方法,但复杂性仍然是指数级的,面试问我优化这个,我又想了半个小时,然后在 DP 中找到了具有额外空间的解决方案。但是他仍然想要更好的解决方案,并给了我五分钟的时间。然后在五分钟内我想到了一个最佳解决方案并告诉面试官,他很高兴努力然后他要求编码。

提示:我从这一轮中学到的是,将自己推向边缘。提供与极客不同或更好的东西

***** 第五轮 *****

1)简短的一些项目讨论和一些关于项目的问题,比如你的角色是什么,你面临什么困难,以及未来的范围。

2)找到树的最小高度(我给了他两种方法使用1)简单2)使用水平顺序)

3)一些简单的位掩码问题

4) 给定一个具有 40 亿非负整数的输入文件。提供一种算法来生成一个不包含在文件中的整数。假设您有 1 GB 的内存可用于此任务。

首先我不知道然后面试给了我提示,我通过映射这个位向量中的所有整数来给出我使用位向量的方法。

***** 第六轮 ****

1)他给了我一个API函数,当客户端访问它时增加计数器。并告诉两个客户端同时访问这个API函数。然后他们得到计数器的模棱两可的值。为什么会这样?

我给他临界区问题的彼得森解决方案和信号量解决方案。

2)关于操作系统的更多问题(线程、互斥锁和死锁)

3) 再一个 DP Ques:从任一侧移除最小元素,使得 2*min 变得大于 max。
我给了他极客的解决方案,但他问你以前见过这个问题吗?我说是的,然后他要求为此编写递归方法我写它
正确。他很满意。

亚马逊的所有练习题!