📜  Oracle 产品工程师面试经验

📅  最后修改于: 2021-09-23 05:32:23             🧑  作者: Mango

我在 LinkedIn 上收到了 Oracle HR 的面试邀请,流程花了一天时间完成了所有 4 轮。所有回合都是技术性的,每回合需要 60 到 90 分钟。

第 1 轮:第一轮是基本筛选轮,面试官以介绍和一些基本的Java问题作为热身开始。然后面试官跳到编码问题,问了两个编码问题,我必须讨论这种方法,并且必须为此编写代码。

  1. 查找已排序数组中元素的索引。已排序数组中的一些相邻元素被交换。
    我通过对 3 组元素使用二分搜索在 O(logn) 时间内给出了一个解决方案。我在 GeeksforGeeks 上找不到这个问题,也许你可以在那里搜索。
  2. https://www.geeksforgeeks.org/length-of-longest-consecutive-ones-by-at-most-one-swap-in-a-binary-string/
    在这里,我错过了一些边缘情况,例如数组中全为 1 或 0 时。但是面试官已经给出了一些提示所以修复了我的代码。后来同样的问题面试官扩展到最多k个替换。

第二轮第一轮结束后第二轮开始,面试官先讨论了我之前的工作几分钟,然后开始了一个编码问题。这里还问了两个编码问题。

  1. https://www.geeksforgeeks.org/merging-intervals/。我已经给出了堆栈的解决方案。
  2. https://www.geeksforgeeks.org/split-the-given-array-into-k-sub-arrays-such-that-maximum-sum-of-all-sub-arrays-is-minimum/

第3轮:面试官从OOP问题开始,多线程,我以前工作中在哪里使用多线程?关于缩放的一些问题。面试官从一个设计问题开始。

  1. 您必须开发一个日历系统,可以将员工的工作时间(每天的开始时间和结束时间)存储在数据库中。当新员工到来时,您的系统必须适应它。我必须为此设计架构,并且必须编写代码以找到 k 位员工参加会议的最早一小时时间。 (这是我们必须合并区间的前一个问题的一种变体)。
  2. 第二个问题是海峡正向编码问题。 https://www.geeksforgeeks.org/josephus-problem-set-1-a-on-solution/

第 4 轮:我被告知这将是最后一轮,从我的介绍开始,然后讨论我的项目。

  1. 在那之后,面试官开始解谜问题。 https://practice.geeksforgeeks.org/problems/the-3-5-litre-die-hard-water-puzzle
  2. 下一个问题是设计问题,制造商可以制造自行车、笔记本电脑、电吹风、Wasgihmachine 等任何东西。如果他想制造笔记本电脑,那么他需要一些备件,如 RAM、主板、LCD/LED 等。 注意:这些备件可能还需要一些其他备件,如主板需要 CPU 等。这些备件可以是任意数量的,例如笔记本电脑需要 1 个主板和一些 USB 端口,比如说 3。我必须设计它的数据库存储产品和备件及其关系的模式,对象模型和我必须编写代码来查找特定备件的数量。注意:这可能是一个子备件,例如一辆自行车需要 2 个轮子,每个轮子需要 2 次制造,然后 findSparesParts(laptop, break) 必须返回 4。我通过将产品(备件也是最终产品)组织成图形并使用图形遍历我给出了 findSparesParts() 的定义。

结果:选中