OPPO 研发面试经验 |在校园
Oppo R&D于8月8日访问了DTU校园,并选择了18名学生。有 1 轮编码,随后是 2 轮技术面试和 1 轮 HR。
在线编码回合: 1:30 小时内有 3 个不同难度级别的问题需要解决。其中一个是简单的,其中两个是中等水平。
- 给定一个整数 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) - 给定一个大小为 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) - 给定一个大小为 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位面试官,先讨论项目相关的问题,然后问了两个问题。这是问题解决轮。
- 告诉我一些你的事吧。当我继续告诉他们我的项目时,他们开始从项目中提出问题。由于我的项目是关于人脸识别的,他们问我使用的算法。然后询问我捕获的图像的像素,捕获的图像的大小等。
- 讨论一下我在亚马逊做的实习项目。询问我项目的用例。
- 给定无向图,计算任意 2 个节点之间的最小距离。询问时间复杂度。给我笔和纸,让我写一个算法来找到有向图的任意两个节点之间的最短距离。
第二轮技术轮:这是面试官从操作系统和 DBMS 提出问题的理论轮。
- 你最喜欢的科目是哪个?我说的是“数据结构和算法”,他回答除了DS和算法。我告诉他操作系统和 DBMS。
- 什么是临界区?
- 如何解决临界区问题?
- 给定一个临界区,两个进程可以同时进入该临界区。变量a的最小值和最大值是多少。 a 的初始值为 200。
临界区:{
读一个;
a = a + 10;
写一个;
}
人力资源局:这是一次不错的经历。他们问我关于 Oppo 的问题和我的简历中的问题。一些问题是:-
- 告诉我一些关于你自己和你家人的事情。
- 告诉我一些关于 Oppo 的事情以及你为什么选择 Oppo ?
- 最近,OPPO推出了哪款手机?
我对新推出的OPPO手机一无所知,所以我直接说我不知道。 - 您搬迁到海得拉巴有什么问题吗?
- 你的优势和弱势是什么 ?
大约 24 名学生参加了 HR 轮,最终录用了 18 名学生。我就是其中之一。