OYO 面试体验 – SDE (2019)
第一轮:第一轮在 HackerEarth 上进行。该测试有 2 个编码问题和 20 个关于技术问题的 MCQ 问题。
有 4 种不同类型的编码问题,每个学生必须解决其中的两个问题。
- 到达网格末端的最低成本。 https://www.geeksforgeeks.org/min-cost-path-dp-6/
- 气球爆裂问题。 https://www.geeksforgeeks.org/burst-balloon-to-maximize-coins/
- 如果它被“X”包围,则将“O”替换为“X”。 https://www.geeksforgeeks.org/given-matrix-ox-replace-ox-surrounded-x/
- 史酷比有在某些时期睡觉的习惯。给您两个数组:一个包含每个时期教授的章节数,另一个包含标志 scooby 在该时期是否睡觉(显示为 0)(显示为 1)。你的工作是找出你给史酷比一个史酷比零食的时期,这对于“K”时期是有效的,这样他就可以覆盖最多的章节。
For example: chapters covered in each period is [2, 3, 5, 3, 5, 4] and flags for sleep are [1, 1, 0, 1, 0, 0]. That is, scooby is asleep for third, fifth and sixth period. The effectiveness for scooby-snack is 3 periods. The maximum number of chapters covered will be when you give it to scooby in 3rd period.
Number of chapters covered would be : (2 + 3 + 5 + 3 + 5) = 18
In case you give it in 4th period, the chapters would be: (2 + 3 + 3 + 5 + 4) = 17
MCQ 涵盖了 DBMS、操作系统、OOP 和数据结构等技术主题。
注意:任何人只要解决了两个编码问题中的至少一个,就有资格进入下一轮。
(40 人中有 22 人通过)
第 2 轮: F2F 面试
- 你会得到一棵经过一些修改的二叉树:
a) 对于任何只有一个子节点的节点,指向缺席子节点的指针指向自身。 (假设一个节点刚刚有左孩子,那么指向右孩子的指针指向它自己,反之亦然)。
b) 对于一个叶子节点,如果它的右边存在一个叶子(在整个二叉树的上下文中),那么这个叶子节点的右子指针指向那个右叶子,否则指向它自己。
c) 对于一个叶子节点,如果它的左边存在一个叶子(在整个二叉树的上下文中),那么这个叶子节点的左子指针指向那个左叶子,否则就指向它自己。
任务是给出二叉树的前序遍历(当时它没有被修改)。
对于给出的示例,遍历应该是:1->2->3->4->5->6->7->8->9
从右图中可以看出,二叉树的叶子构成了一个双向链表。使用该属性,这个问题就解决了。也就是说,如果(current->right)->left = current或(current->left)->right = current,则节点是叶子。这将解决 O(1) 空间中 O(n) 时间复杂度的问题。
注意:面试官让我在纸上写代码。
2. 求两个给定数之间的完美平方数。 https://www.geeksforgeeks.org/find-number-perfect-squares-two-given-numbers/
3. 给定一个数字,找到没有任何内置函数的平方根。 https://www.geeksforgeeks.org/square-root-of-an-integer/
(22 人中有 9 人通过)
第 3 轮: F2F 面试
面试官很年轻,很友好。
第一个问题是“介绍一下你自己”。
然后开始技术面试:
- https://www.geeksforgeeks.org/find-the-row-with-maximum-number-1s/
- 关于互斥量、信号量、虚拟内存与 RAM 的问题
- 烂橙子问题的变体:https://www.geeksforgeeks.org/minimum-time-required-so-that-all-oranges-become-rotten/
注意:(面试官让我把第三个问题写在纸上)
我在这一轮之后被选中,但很少有学生不得不再进行一轮。最终,9人中有5人被选中。
感谢我为采访做准备的 GFG 档案。