OYO Rooms 2018 面试体验
第1轮:
第一轮包括 20 个计算机科学基础 MCQ 和两个编码问题。在 MCQ 中,数据结构和操作系统被赋予了重要性。
编码问题 1 :给定NxN迷宫中的源和目的地,找到它们之间的最短路径,一些单元被占用,无法找到通过它们的路径。
编码问题 2 :给定d 、 a 、 b和一个整数数组。您可以将a和b加/减到d任意次数。您必须找到可以通过将这些操作应用于d 来形成的数组元素的计数。
30名学生被选中进入下一轮。
第 2 轮(F2F 面试):
面试官让我介绍一下自己,并问了一个与我的项目有关的问题。
然后问了两个问题。
问题 1 :在逐行和逐列排序矩阵中搜索。面试官期待一个 O(n) 的解决方案。
问题 2 :最小级别的叶节点总和。面试官期待一个 O(n) 的解决方案。
面试官很友善,有时间解决问题。他们专注于降低代码的复杂性,一旦我们实现了尽可能复杂的逻辑,我们被告知要为它编写代码。这一轮持续了大约45分钟。
第三轮(F2F面试):
面试官首先问了一些关于我的项目的问题。他简要介绍了我简历中的所有项目。然后他开始询问OOP的一些关于多态性(运行时和编译时)和继承的基本概念。在此之后,他告诉我要为我的一个项目设计数据库表,并添加一些约束。然后询问与分页及其算法相关的操作系统概念。这次计算机科学基础相关的面试持续了大约 45 分钟。
然后问了一些编码问题。
问题 1 :为 splitwise app 设计一个算法。 https://www.geeksforgeeks.org/minimize-cash-flow-among-given-set-friends-borrowed-money/。他期待一个 O(n2) 解决方案,但我被困在 O(n3) 解决方案上。我没有被要求为这种方法编写代码。
问题 2 :给定一个链表,创建一个 AVL 树。我给出了一个解决方案,在其中对链表进行排序,然后将中间元素设为根,现在我剩下右子树和左子树,并且递归地重复相同的过程。他对解决方案非常满意,然后告诉我为递归部分编写代码。
这一轮持续了大约1小时30分钟。面试官对这种方法非常感兴趣,而不仅仅是回答。
有人告诉我,我不会再有轮次了,结果将通过邮件分发。终于我被选中了