亚马逊面试经历 | SDE-1 校内
第一轮是在线测试,包括 2 个编码问题和 28 个关于 mettl 的 MCQ。编码问题的级别从简单到中等不等。每个人都有不同的编码问题。我记得的很少有:
1.数组中的反转计数
2. 后缀求值(也处理负数)
3. 数组中的平均中位数模式
4.掷骰子拼图(DP)
5.二次方程的根
6.一元线性方程
7.最长公共子序列
8.评估中缀操作(也处理负数)
MCQ 很困难,需要深入了解 DSA 和 C C++。
在大约 350 名学生中,有 53 名被邀请参加面试。
第1轮:
面试持续了25分钟,就2个问题进行了深入讨论。他直接从编码问题开始。
- 给定一个字符串对其进行编码。例如。 aaabb -> a3b2
- 有 n 个人,给出了他们的身高和体重。您必须选择可以站在队列中的最大人数,条件是队列中人员的身高和体重将始终小于或等于下一个人。您必须返回人员而不是计数。 (LIS)
这一轮很顺利,我立即被要求参加下一轮。
第 2 轮:
这一轮持续了30分钟。
- 给定 k 个大小为 n 的数组。您必须从每个数字中选择一个数字,以使它们之间的差异最小。最初问题是 3 个数组,我很快告诉他解决方案,然后他将其更改为 k。
- 实现 AVL。
- 关于设计数据结构的问题我不记得了。我为此使用了哈希。他问我关于哈希最差时间复杂度的问题,以及改进它的想法。
- 关于 trie 的一个问题。
- 整数流的中位数。
- 给定一个范围为 1-n-2 的 n 个整数数组,其中每个整数出现一次,两个整数出现两次,找到它们。
我必须为每个问题编写代码。这次面试也很顺利,马上就被叫到下一轮了。
第三轮:
这一轮进行了90分钟。这与前两次不同。这更像是一轮讨论。
- 项目讨论。
- 带更新的范围求和查询。我告诉他前缀总和。他想要更好的方法。我告诉他分段树。
- 然后他以最佳优化的方式询问范围更新。我告诉他懒惰的传播。我不得不用惰性传播为段树编写代码。
- 1小时网络讨论。 (我告诉他我没有修改,但他一直在问)
这一轮也很顺利。在网络中,他在我需要时提供了一些输入。由于已经很晚了,我的下一轮安排在第二天。
第四轮(酒吧提升者)
这一轮进行了大约1个小时。
- 通配符模式匹配。我讨论了所有极端情况和基本情况以及递归关系。他让我在自下而上的 dp 中编写代码。他对我的解决方案非常满意。
- 设计一个运行字符串流的数据结构。如果一个单词在 10 秒内没有出现,您必须打印它,否则忽略它。您必须以最佳方式管理内存。我讨论了使用 trie、hash、lru 的 varios 方法。当我用队列和哈希告诉他我的解决方案时,他很惊讶并告诉我他没有想到那个解决方案。他让我写代码。
- 项目讨论。
- oops- 编译器如何实现抽象类。当我告诉他解决方案时,他说的很棒。
我很确定我的选择,因为我看过我的评论表,我的所有评论都是实力,除了第三轮的cs基本是混合的,第四轮也很好。
结果在上午 12:30 宣布,共有 9 人被选为 FTE,我是其中之一。