Oracle 面试体验 |第 31 组(全球业务部校内)
第 1 轮:这是一个在线 MCQ 轮,由 4 个部分组成——语言、能力、计算机科学和编程知识。
计算机科学部分由基于操作系统、DBMS、软件工程的问题组成。它还对某些书面代码和排序算法的时间复杂度提出了一些问题。
编程:
– 本节侧重于理解代码的能力。基本上关于AVL树、BST树和链表的问题都以代码的形式呈现,并且必须找到这些代码的输出。一个程序有大约 5 个问题。
– 我们也有基于流程图的问题。
– 确实必须清楚链表、堆栈和队列的概念。
第 2 轮:在线编码轮,包括两个问题。(时间:1 小时)
– 一般实施的第一个问题
– 第二个问题是基于有向图的。
技术第一轮:
——自我介绍。
– 然后他问我如何创建一个包含 adhar 号码、姓名和父亲姓名的人的数据库。
– 第二个问题是实现一个计算器,它可以执行 +、-、* 和 / 的基本运算。
他要求我编写完整的工作代码,并用首选语言 C、C++ 或Java中的任何一种来处理边界情况。然后他浏览了我的简历,问我写了他让我解释的代码。然后他还问我如何扩展我的代码以使其适用于 sin(x)、cos(x) 等科学计算。
– 在他浏览完我的简历后,他让我解释最近在任何在线编程平台上解决的问题之一。我最近解决了 Codeforces Div 2 的问题并向他解释了这个问题。他还问我如何解决这个问题。我让他完成了 O(n^2) 复杂度到 O(n) 复杂度的解决方案。
技术第二轮:
——自我介绍。
– 数组和链表的区别。数组相对于链表的优势。
– 我更喜欢 C 和 C++ 中的哪种语言,为什么?
– 我最喜欢的数据结构和算法是什么,为什么?我回复了array和DFS并解释了我的原因。
– 为什么我对数据结构和算法感兴趣?
– 如果我有 10、100 和 1000 个元素,我更喜欢数组和链表之间的哪种数据结构?我必须在时间和空间复杂性方面给出我的答案。
——A类{…};
一个ob; // 声明 1
A *ptr = 新 A(); // 声明 2
这两个声明之间的区别。
– 编写代码解释复制构造函数的工作。
– 静态类。
– 给定一个大小为“N”的链表,我将如何从最后一个元素中删除第 5 个元素?
- 他让我编写反转链表的工作代码。
– calloc 和 malloc 之间的区别。他还让我写这两个的语法。
– 给定一个堆栈和一个队列。在任何时候让栈保存 N1 个元素,队列保存 N2 个元素。
1. 如果 N1 和 N2 都是奇数,交换栈和队列的中间元素。
2. 如果 N1 和 N2 都是偶数,那么我们将有两个中间元素在堆栈中,两个在队列中。在这四个元素中,将最大元素与最小元素交换。
3. 否则什么都不做。
虽然我无法完全解决这个问题,但我给了他我的方法,他建议我使用最小堆栈算法解决这个问题并使用两个堆栈实现队列。
– 为什么我开始竞争性编程?
总的来说,在这四轮比赛中帮助我的是我所有的竞争性编程经验。我真的要感谢 Codechef、Codeforces、Hackerearth 和 GeeksforGeeks 为我提供了这样一个很棒的平台来提升自己。