亚马逊专访 |设置 32
我想通过分享我在亚马逊面试过程中的经验为 GeeksForGeeks 做出贡献。这是在海得拉巴的 SDE 职位。我在三星有将近 2 年的工作经验。
第一轮:书面
测试是在面试街平台上进行的。
Qs-1)给出了一个函数printMostFrequentWords,它接受一个字符串数组。需要打印在数组的每一行中出现频率最高的所有字母的列表,然后是频率。
字母列表应该是按字母顺序排列的大写字母列表,然后是按字母顺序排列的小写字母列表。
示例测试用例:
输入#00:
在单行道上倒着骑自行车时,如果独木舟的轮子掉下来,需要多少个滚珠轴承才能装满
养水牛?
你好霍华德。
输出#00:
6
人 7
一个 3
哈洛2
Qs-2) https://www.geeksforgeeks.org/construct-a-special-tree-from-given-preorder-traversal/——这个的变体
Qs-3) http://www.careercup.com/question?id=12998667
第三种情况有点棘手。
Qs-4)将 M*N 矩阵旋转 90 度。在这种情况下没有给出函数。一切都应该由你自己承担。
Qs-5)从链表中删除第 K 个节点。
我解决了所有测试用例的 4 个问题,而另外 1 个仅通过了 10/15 个测试用例。
第二轮:电话
Qs-1)树的螺旋级顺序遍历。 (使用两个堆栈)
Qs-2)一个人可以跳 1 或 2 步。没有到达 n 个楼梯顶部的方法。 (尝试 O(1) 空间。)
Qs-3)找到一个字符串,其中正好有 2 个唯一字符。子字符串不应包含超过两个不同的字符。
所以,aaaaabbaaa 是一个有效的子串
此外, ccaccccaccaca 是一个有效的子字符串。
需要为第三个 qs 编写代码。
预期 = O(n)
我回答了所有 3 个问题,并且有信心收到我所做的现场电话。
F2F 第一轮:
Qs-1)问题是垂直打印一棵树。请注意,没有要求获取每个垂直级别的总和。我们必须从最左边的垂直水平到最右边的垂直水平打印不同垂直水平的节点。
我建议向量数组然后是散列。最后我给出了一个基于DLL的解决方案。
代码仅使用 DLL 编写。
Qs-2 )仅询问如何将二叉树保存在文件中的方法(不是 BST)
没有关于二叉树的假设。
这一轮对我来说很顺利。
F2F 第 2 轮:
Qs-1)首先我被要求设计一个 O(1) 插入和 O(1) 搜索的数据结构。我谈到了散列。然后他告诉我从插入到我的 Ds 中的当前数字列表中获取一个随机数。所以我维护了一个存储指向哈希表的指针的数组。(假设没有冲突,他这么说)。然后他也说 O(1) 删除。我被困在这个问题上,我无法在 O(1) 中同时删除和 getRandom。经过一些讨论,他继续前进。
Qs-2)他告诉有一个范围,由最小 val 和最大 val 定义。在给定的数组中,我必须找到该范围内的所有元素。我告诉他只有在 O(n) 中才有可能。我们必须查看每个元素。然后他告诉我假设数组是排序的。然后我使用二进制搜索来查找最小值 ceil 和最大值下限的索引以查找范围内的元素。
这一轮对我来说没问题。第二个问题我用所有边缘情况编写了正确的代码,但一开始我有点卡住了。
F2F 第 3 轮:
Qs-1)在二叉树中,完整路径定义为从根到叶的路径。该路径上所有节点的总和被定义为该路径的总和。给定一个数字 K,我们必须从树中删除(修剪树)位于总和小于 K 的路径上的节点。
注意:一个节点可以是多个路径的一部分。所以我们只有在它的所有路径总和小于 K 的情况下才需要删除它。
我能够解决这个问题并为此编写正确的工作代码。
(提示:考虑一种自下而上的方法。)
注意:树中的值也可以是 -ve。
Qs-2)机器人问题:在 am*n 网格中从 0,0 到 m,n 的方法数。我只需要告诉递归函数。无需代码。
这一轮对我来说非常好。第一个问题有点棘手,但解决它提高了我的信心。
F2F 第 4 轮与招聘经理:
Qs-1)这主要是基于人力资源的一轮。很多关于我以前的工作、我的倡议、我面临的挑战以及许多其他问题的问题。
还有一个关于矩阵的简单问题。如果该行或列中存在 1,则用 1 填充行和列。还需要代码。
基于装运和订单等的问题。例如:在下订单和装运物品的黑白方面需要注意什么。你会考虑什么所有的因素和事情。
我正在接受运输团队的面试。所以基于它的问题。
总的来说,这一轮进展顺利
那天晚上我回到了班加罗尔。
几天后,我接到人力资源部的电话,说我很接近,我需要在班加罗尔办公室再参加一轮。
F2f 第 5 轮:
大约半小时的基于小时的讨论。
然后是两个带有代码的技术问题:
Qs-1)在二叉树中,如果所有叶子都在同一级别,则返回 true,如果所有叶子不在同一级别,则返回 false。
Qs-2)给出一个先增后减的数组。找到枢轴元素。需要处理所有边缘情况。
这一轮对我来说很顺利。这一轮主要是关于软技能。我在编码问题方面做得很好,并为两者编写了正确的代码。
晚上我接到了HR的电话,我被选中了。 🙂
我要感谢 GeeksForGeeks 团队对我的大力帮助。