📌  相关文章
📜  OYO 房间软件工程师面试经验(校内)

📅  最后修改于: 2021-11-18 02:42:44             🧑  作者: Mango

OYO Rooms 参观了我们的校园招聘软件工程师。符合条件的分支机构为 CSE、CCE、ECE。

CGPA CUTOFF:六个以上没有活动积压

第 1 轮(在线编码轮):在线轮包括 2 道编码问题和 25 道基于 OS、OOPS、DBMS 和 DSA 的 MCQ 问题。测试结束后,45名学生入围面试。我完全解决了第二个问题,并入围了面试。

第 2 轮(技术面试 1):面试开始时简要讨论了我简历上的项目,并就此提出了基本问题。在那轮之后,我被问到了 2 个 DSA 问题。

  1. 第一个问题是做二叉树的对角遍历。我使用 DFS 给出了基于地图的解决方案。我被要求对这种方法进行编码。
  2. 第二个问题是在整数流(运行整数)中找到中位数。首先,我给出了蛮力方法。

然后我被进一步要求优化复杂性。我给出了时间复杂度 O(N log N) 和空间复杂度 O(N) 的解决方案。这个想法是使用最大堆和最小堆来存储上半部分和下半部分的元素。我被要求对这种方法进行编码。最大堆和最小堆是使用 C++ STL 中的 priority_queue 实现的。

这就是第一轮技术面试的全部内容,持续了大约一个小时,面试官非常友好,随时准备给你提示,你需要告诉他们你到底卡在哪里。

在第二轮之后,26 名学生进入了第三轮面试的候选名单。

第三轮(技术面试二):面试官人很好,前5-10分钟安慰我,然后问我介绍,讨论了我的整个简历,包括项目,课外活动爱好等等.然后我得到了那轮的第一个 DSA 问题,

给定一个维度为 m*n 的矩阵,其中矩阵中的每个单元格可以具有 0、1 或 2 值,其含义如下:0:空单元格,1:单元格有新鲜的橙子,2:单元格有腐烂的橙子。

  1. 有人问我确定所有橙子都腐烂所需的最短时间。索引 [i,j] 处的烂橙可以腐烂索引 [i-1,j]、[i+1,j]、[i,j-1]、[i,j+1](向上,下,左,右)。如果不可能腐烂每个橙子,则返回 -1。

首先,我给了他一个简单的解决方案,时间复杂度为 O(max(m,n) * m *n),空间复杂度为 O(1)。但他告诉我换个角度思考,并给了他一些数据结构的解决方案。我用时间复杂度 O(m*n) 和空间复杂度 O(m*n) 回答。这个想法是使用 BFS。我还被要求对这种方法进行编码。

在此之后,讨论了Heap Sort、Heapify、Red-Black Tree的时间复杂度。然后问了一些与 ACID 属性 (DBMS) 和 CPU 调度算法 (OS) 相关的问题。

最后公布了结果,一共选出了16名学生,包括我。我希望我的经验会有所帮助。