📌  相关文章
📜  Oracle 应用工程师职位面试经验(2020 年)

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

Oracle 应用工程师职位面试经验(2020 年)

第一轮:在线测试

在线测试:这一轮有一些部分。在每个部分中,必须按顺序回答问题。我们不能跳过问题并稍后重新尝试。这4个部分是:

  1. 资质
  2. DSA 概念:AVL 树旋转,BST 遍历
  3. CS 课程概念,例如 OS、DBMS、OOP
  4. 英语

第2轮:技术轮(由于冠状病毒封锁,采访在Zoom上进行)

面试官要求自我介绍,看了我的简历。并要求我简要介绍我的项目。

他问了我关于 Web 开发、网络协议的基本问题。

然后他问了我两个编码问题:

1.在一个有 n 个学生的班级里。假设一名学生在教师出勤时失踪。找到丢失的学生卷号。假设卷号在 1 到 n 的范围内。

这类似于查找值在 1 到 n 范围内的数组中的缺失元素。 (使用异或)

https://www.geeksforgeeks.org/find-the-missing-number/

2.合并n个已排序的链表(可能包含重复)

https://www.geeksforgeeks.org/merge-k-sorted-linked-lists/

问题

  1. 解释抽象、封装
  2. 哈希集和集合的区别
  3. 数组和列表的区别

第三轮:技术轮

编码问题:

1. 求数 n 的平方根。如果不是一个完美的正方形找地板(不能使用预定义的函数)

https://www.geeksforgeeks.org/square-root-of-an-integer/

2. N位玩家正在玩中文耳语。第一个人总是听到正确的信息。但是当消息到达第 n 个玩家时,它可能会被破坏。所以我们要求所有玩家列出他们在游戏结束时听到的内容。找出错误玩家的数量。

假设玩家 1 听到在索引 0 处给出的值

如果他们听错了或传递了错误的信息,则播放器有故障

因此,当 player1(p1) 和 player2(p2) 之间发生通信错误时,就会发生。有两种可能的情况:

CASE 1:p1——说得对,p2——听错了

案例2:p1——说错了,p2——听对了

但由于我们不知道这两个发生了哪一个。我们考虑两种可能的情况,即 p1 和 p2 都是有罪的。

输入:1 1 1 2 2 3 3 3 2

输出:6

解释:玩家 3 , 4 , 5, 6 , 8 , 9 有罪

输入:1 1 1 2 2 3 2 3 2

输出:7

解释:玩家 3 , 4 , 5, 6 ,7 , 8 , 9 有罪

解决方案:

Python3
players = [1, 1, 1, 2, 2, 3, 2, 3 ,2]
faulty = 0
n = len(players)
for i in range(1,n):  
    if players[i] != players[i-1] :
        if i-2 >=0 and players[i-1]  != players[i-2]: #if already player[i-1] was faulty
            faulty += 1
        else:
            faulty += 2
print(faulty)


SQL 查询:

给定一个带有 id 和他们的电子邮件的员工表。查找重复的电子邮件 ID。

从员工中选择电子邮件

按电子邮件分组有 COUNT(*) > 1

https://chartio.com/learn/databases/how-to-find-duplicate-values-in-a-sql-table/

问题

  1. 运行时多态性
  2. 悬空指针

面试官会尽量给你提示。尽量保持冷静和专注。

第 4 轮:技术 + 人力资源轮

面试官问我以前的实习经历。

编码问题:

如果字符串具有相同顺序的 'T' 、 'R' 、 'U' 、 'E'字符,则该字符串是有效的。任何字符都可以连续出现任意次数

有效字符串:“TTTRRUEEE”、“TRUUUE”

无效字符串:“TRUETT”、“TRTUTE”、“TRUEEEER”、“TRRRR”、“RRUE”

一个关于数组列表的Java输出问题

一些典型的人力资源问题。

判决:未选择