📜  亚马逊面试经历 |设置 384(FTE 校内)

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

亚马逊面试经历 |设置 384(FTE 校内)

在线编码回合:
平台:Hackerearth
时间:1.5小时
问题格式:20 个 MCQ + 2 个编码问题
MCQ 基于数据结构、操作系统、网络等。
编码问题:
1) 找到最大 ji 使得 arr[j]>arr[i]
预期时间复杂度:O(n)
2)找到数组中每个窗口大小的最大值和最小值
只有使用堆栈的优化解决方案(O(n))才能通过所有测试用例。

大约 37 名学生从编码轮中被选中,并被要求进行进一步的面试。

第一轮(面对面):
时间:45分钟
面试官很酷。她让我自我介绍,并简单介绍一下我做过的项目。然后她转到数据结构部分。
一个问题是,给定一个包含相等数量的正元素和负元素的数组,排列该数组使得每个正元素后跟一个负元素。我告诉她 O(n) 方法,首先以 0 为轴心分离正负元素,然后交替排列。她让我为涵盖所有极端情况的代码编写代码。
第二个问题很简单,在给定 k 大小的组中反向链表。
她让我为此编写代码。

第二轮(面对面):
时间:45分钟
面试官很冷静,很合作。他问我上一轮的情况如何。然后他继续提问。
一个问题很简单,就是找到二叉树的边界遍历。他让我为此编写代码。
第二个问题是在矩阵中找到最小成本路径。我告诉他使用 BFS 的方法,然后最终使用带有记忆的递归解决了它。然后他要求把我的方法写在纸上。他对我在这一轮的表现印象深刻。

第三轮(提高酒吧):
时间:60分钟
面试官是小组成员的经理和负责人。他让我自我介绍,我最喜欢的科目是什么。他问我解决了哪些我觉得很难的问题,以及在解决这个问题时遇到的问题是什么。然后他继续提问。
一个问题是一棵 n 叉树,对于树的每个第 k 层,从左数开始打印该层存在的第 k 个节点,如果第 k 个节点不可用,则打印该层的最后一个节点。我告诉他使用水平顺序遍历的明显方法。他让我编写涵盖所有极端情况的代码。
另一个问题是只买卖股票一次。然后他将问题改为多次买卖以最大化最终利润。他不断通过修改问题约束来混淆我。最后他最终接受了我的解决方案并让我试运行在那个代码上。

第四轮(面对面):
时间:1.5小时
这一轮主要是基于问题解决和各种CS主题,如OS、DBMS、OOP等。他首先让我介绍我的项目,这是一个android应用程序。他问我这个应用程序的核心思想,它的布局等。他问我用什么来在数据库中存储各种信息,我告诉他我使用 MySQL 和 MySQL 语句,这些语句是从使用Java中的 URL 编码机制的PHP脚本调用的。他问我在项目中遇到的困难以及我是如何解决这些问题的。然后他继续提问。
一个问题的陈述类似于移动键盘问题。但是有一个细微的变化,一个单词字典也给出了一个数字,我必须找到字典中存在的所有单词,可以通过按这个号码。我告诉他使用回溯的常用方法。他要求我优化我的方法。他给了我一个提示,可以通过使用一些空格来完成。最后,我通过将单个字母与数字映射来得出优化的解决方案,通过按数字可以生成它们,例如按 2 可以生成字母 a、b 或 c,因此将 a、b 和 c 映射为 2。然后迭代每个单词出现在字典中以查找它是否是可能的解决方案。
第二个问题是在数组中为每个元素找到下一个更高的元素。我告诉他 O(n^2) 时间复杂度的蛮力之一。他让我优化它。我使用 BST 进行了尝试,但它没有通过所有测试用例。然后经过一些提示,我终于找到了使用堆栈的解决方案。
他让我为井字游戏设计一个类,其中给定的棋盘大小是变量 n。我被要求通过检查所有行、列和对角线的所有 1 或所有矩阵大小 n 的所有 0 来实现成员函数findWin()。
他问我一些基于 OOP 的问题,比如抽象类、接口、它们的区别等,在 OS 中,他问我关于互斥锁、信号量、它们的区别等,并详细描述了软件生命周期。终于,回合结束了。
9名学生参加了第四轮,其中5名被选中。我就是其中之一。 🙂
我感谢 GeeksforGeeks 帮助我做好准备。

亚马逊的所有练习题!

相关练习题

每个窗口大小的最大值和最小值
正负元素