亚马逊面试经历 | 399(在校全日制)
亚马逊于 2017 年 7 月的最后一周来到我的校园。
在线回合在 HackerEarth 平台上进行。
它有 2 个编码问题和 20 个 MCQ。
- 给定一个未排序的数组 A,找到 ij 的最大值,使得 A[i]>A[j]。
- 给定一个未排序的数组 A 和一个数 k,找到数组中最大和的子字符串,使得它的和可以被 k 整除。
多选题:
各得 1 分,负分 0.25。
很少有 MCQ 基于数据结构、算法、oops 和操作系统,逻辑推理、网络和 DBMS 各有 1 或 2 个。
每轮面试都以“告诉我关于你自己”的陈词滥调开始,以“你有什么问题吗”结束。
第1轮:
- 给定一个日志文件,其中包含在亚马逊上搜索的产品的产品 ID 和相应的客户 ID,您需要在一天结束时找到浏览次数最多的产品。如果单个客户多次查看产品,则其查看次数仅增加 1。产品数量非常多,因此对产品 ID 进行排序、堆或散列是不可行的。
解决方案——使用 Trie 数据结构。经过10分钟的讨论,我可以提出这个。
需要在 trie 中插入和搜索的生产级代码。如果需要 k max 查看产品怎么办。
在我讨论的过程中,他还让我写一个散列函数。
第 2 轮:
- 图的 Dfs。
- 数组树的 Dfs。 (代码是必需的)
- 给定一个字符串s 和一个文件,每个单词都在单独的行中,找出文件中所有单词都是字符串s 的变位词。面试官让我说出所有可能的解决方案,无论其复杂程度如何。这持续了10分钟。
- 给定 am*n 矩阵,找到从 (0,0) 到 (m-1,n-1) 的路径数,在每个块中,我们要么向下移动 1 步,要么向右移动 1 步。打印上述问题的所有路径。需要 dp 解决方案。
解决方案:GeeksforGeeks 链接。
第三轮
- 给定一个具有从 1 到 n^2 的不同元素的 *n 矩阵,找到摧毁矩阵的所有单元所需的最小炸弹数量。如果我们轰炸一个值为 i 的单元格,一个值为 i-1 的单元格(如果相邻的 4 个单元格)也将被摧毁。 (代码是必需的)
如果数字不是唯一的怎么办。 - 在未排序的数组中查找多数元素。
- 在排序数组中查找多数元素。 (需要 logN 解决方案)。
- 对角线打印树的元素。
- 找到树的两个节点之间的最短距离,其中每个节点也有一个指向其父节点的指针,我们也可以直接从节点a跳转到节点b,其中b是a的镜像,a和b属于两者以给定树的根为根的子树。镜像可能存在也可能不存在。
- 找出将信息从根传递到树的所有节点所需的时间。
然后面试官问我喜欢哪些其他非编码科目。我说操作系统。
所以他问了我几个关于操作系统的基本问题。
什么是-
- 操作系统
- 捶打
- 爸爸异常。
- 页面错误。
- 穿线。
- 多重处理
- 线程和多处理之间的区别。
- 调度算法。
第四轮
著名的亚马逊酒吧提高者回合
- 我的实习经历。
- 详细讨论我的暑期实习项目。
- 你最喜欢的算法是什么,为什么。
- 你在大学里做过的最艰难的事情。
- 您在暑期实习期间学到了哪些领导原则。
- 你在实习中学到的非技术性的东西是什么。
这是一轮电话会议,持续了 34 分钟。
推荐大家从 InterviewBit, Hackerearth CodeMonk, Hackerrank,
系统设计面试问题,https://ahayraut.wordpress.com/interview-preparation-best-100/ 和 geeksforgeeks。