📜  OPPO 研发面试经验 |在校园

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

OPPO 研发面试经验 |在校园

Oppo R&D于8月8日访问了DTU校园,并选择了18名学生。有 1 轮编码,随后是 2 轮技术面试和 1 轮 HR。

在线编码回合: 1:30 小时内有 3 个不同难度级别的问题需要解决。其中一个是简单的,其中两个是中等水平。

  1. 给定一个整数 N,我们必须找到 N 个整数(1 到 N)模 1e9+7 的可能排列数,以使素数的相对位置保持不变。
    约束:1<=N<=1000000
    示例:N = 5
    输出:12
    解释:可能的排列是 – (1, 2, 3, 4, 5), (1, 2, 5, 4, 3), (1, 5, 2, 4, 3), (1, 5, 3, 4 , 2), (1, 3, 2, 4, 5), (1, 3, 5, 4, 2), (4, 2, 3, 1, 5), (4, 2, 5, 1, 3 ), (4, 5, 2, 1, 3), (4, 5, 3, 1, 2), (4, 3, 2, 1, 5), (4, 3, 5, 1, 2)
  2. 给定一个大小为 N 的数组和一个整数 K,找到可能的子数组的数量,使得其中元素的总和小于或等于 K。
    约束:
    1<=N<=10^5
    1<=Ai<=10^9
    1<=k<=10^18
    示例:N= 5,Ar = [2, 3, 1, 5, 6],K=6
    输出:9
    解释:可能的子数组是 – (2), (3) (1), (5), (6), (2, 3), (3, 1), (1, 5), (2, 3, 1)
  3. 给定一个大小为 N 的数组。对于所有 i,j 使得 0<=i,j约束:
    1<=N<=10^5
    1<=Ai<=10^6
    示例:N=3,Ar = [2, 4, 5]
    输出:8
    解释:Ar[0]/Ar[0] + Ar[0]/Ar[1] + Ar[0]/Ar[2] = 1 + 0 + 0 = 1
    Ar[1]/Ar[0] + Ar[1]/Ar[1] + Ar[1]/Ar[2] = 2 + 1 + 0 = 3
    Ar[2]/Ar[0] + Ar[2]/Ar[1] + Ar[2]/Ar[2] = 2 + 1 + 1 = 4
    总和 = 1 + 3 + 4 = 8

我能够解决所有 3 个问题,因此要求进行面试。

第一轮技术:机舱里有2位面试官,先讨论项目相关的问题,然后问了两个问题。这是问题解决轮。

  1. 告诉我一些你的事吧。当我继续告诉他们我的项目时,他们开始从项目中提出问题。由于我的项目是关于人脸识别的,他们问我使用的算法。然后询问我捕获的图像的像素,捕获的图像的大小等。
  2. 讨论一下我在亚马逊做的实习项目。询问我项目的用例。
  3. 给定无向图,计算任意 2 个节点之间的最小距离。询问时间复杂度。给我笔和纸,让我写一个算法来找到有向图的任意两个节点之间的最短距离。

第二轮技术轮:这是面试官从操作系统和 DBMS 提出问题的理论轮。

  1. 你最喜欢的科目是哪个?我说的是“数据结构和算法”,他回答除了DS和算法。我告诉他操作系统和 DBMS。
  2. 什么是临界区?
  3. 如何解决临界区问题?
  4. 给定一个临界区,两个进程可以同时进入该临界区。变量a的最小值和最大值是多少。 a 的初始值为 200。
    临界区:{
    读一个;
    a = a + 10;
    写一个;
    }

人力资源局:这是一次不错的经历。他们问我关于 Oppo 的问题和我的简历中的问题。一些问题是:-

  1. 告诉我一些关于你自己和你家人的事情。
  2. 告诉我一些关于 Oppo 的事情以及你为什么选择 Oppo ?
  3. 最近,OPPO推出了哪款手机?
    我对新推出的OPPO手机一无所知,所以我直接说我不知道。
  4. 您搬迁到海得拉巴有什么问题吗?
  5. 你的优势和弱势是什么 ?

大约 24 名学生参加了 HR 轮,最终录用了 18 名学生。我就是其中之一。