📜  OYO 面试经历 |设置 7(校内)

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

OYO 面试经历 |设置 7(校内)

最近,OYO Rooms 来到我们的校园招聘全职软件工程师。

第一轮:在线测试

20 道关于数据结构、操作系统、DBMS、C 输出问题的 MCQ。没有负面标记。

2个编码问题 -

  1. 有一个圆形轨道和N个跑步者。每个跑步者都会给你一系列的时间来完成一轮赛道。时间是整数 K 的一个因子。每个跑步者都有一颗宝石,每当以不同速度奔跑的跑步者交叉时,他们就会交换宝石。您必须打印经过 K 分钟后完成的交换总数。

    基于示例的解决方案是创建每个跑步者完成的轮数的新数组,然后找到所有对的差异之和。

  2. 给定一个电影评级数组,其中 -10<= Rating <= 10,并且“K”使得数组中的 K 个评级可以翻转(正到负,反之亦然,任意次数),给出最大总和电影评分可能。

    方法:考虑所有正面评价,负面评价数量 > K 并且负面评价数量 < K

    在这一轮之后,他们从大约 100 名学生中选出了 35 名学生。

第 2 轮:技术面试 – 我

  1. 什么是信号量?现实生活,实际例子?
    关于我解释的任何问题,比如什么是关键部分、计数和二进制信号量等等。
  2. 双链表优于单链表。前者哪个操作更好,为什么?
    这是一次压力测试。面试官不断地问“你确定吗?这就是唯一的原因吗?”虽然我给出了正确的答案。
  3. 我制作的客户端 Web 应用程序的简要介绍。
  4. 在排序的、旋转的数组中搜索。

    大约15-20名学生入围。

第 3 轮:技术面试 – II

  1. 简单介绍一下自己
  2. 给定一个链表,每个节点有 2 个指针;一个指向下一个节点,一个指向链表中的随机节点。复制这个链表。

    我对如何做到这一点一无所知,答案都是当场想到的。我首先从 O(n^2) 时间复杂度方法开始,然后他要求线性时间的解决方案。我在线性时间内给出了一个解决方案,但它需要 O(n) 额外的空间。他进一步要求我对此进行优化,在这里我被卡住了,他暗示我可以修改原始列表,我给出了一个解决方案,但无法弄清楚如何将修改后的链表恢复到其原始结构。但他对我的解决方案很满意,他说“你很接近,如果你多想一点,你就会明白”,但还是继续前进。

  3. 如果我想打印“1”a 100 次,我可以运行一次 for 循环或运行 10 个线程,在每个线程中打印 10 个 1。在哪种情况下哪种方法更好。

    我说过在单处理器系统中,单进程更好,因为线程切换需要时间,并且线程的并发执行只能在多处理器系统上进行,而且资源将分配给 10 个线程,分别执行相同的操作操作,这在某种程度上是一种浪费。他对我的回答很满意。

(基于简历)

  1. 描述 MVC 模式。 MVC 以外的任何设计模式。
  2. 什么是套接字编程以及在浏览器不支持套接字的情况下事件和后备的简短讨论。
  3. (根据我之前的回答)HTTP 无状态是什么意思?我们可以在客户端存储数据吗? (cookies 和本地存储)
  4. 有什么问题问他。我问了一些关于培训过程的问题,我们将与哪个团队合作,工作与生活的平衡等。

    我是他们选择的 10 名学生之一。根据面试官的反馈,他们将第三轮保留为可选。

总而言之,面试官非常乐于助人,彬彬有礼,乐于助人。整个团队给人以良好的氛围,并采取了积极的态度。

我衷心感谢 geeksforgeeks 为实习提供了一个学习和实践的绝佳平台。谢谢 !