📜  DE Shaw 采访 |设置 1

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

DE Shaw 采访 |设置 1

共3轮。第一次写,然后是 2 次面对面,每一轮都是淘汰赛。

第 1 轮(书面 - 1 小时): 3 个部分。每次 20 分钟。

第 1 部分: 20 道能力问题,真的很难。平均解决问题数为 4。

第 2 部分: 20 (C++ & Java) oops 相关问题和其他输出问题。 (水平很好。G-Facts)

  • C++中:主要是虚函数、虚析构函数、拷贝构造函数、初始化列表、虚继承题、内部类等。
  • 在Java中:主要是内部类、Base引用、子对象概念、覆盖问题等。

第 3 部分:为以下问题编写运行代码:

  • 在一个有序数组中找到 2 个没有给定 DIFFERENCE 的 K。

在 99 名学生中,有 22 名学生被选中。他们主要来自 IIT、IIIT、NIT、亚马逊、微软、Adobe 等。

第 2 轮(面对面 - 1 小时):快速提问🙂 主要来自 C++、数据结构和算法、操作系统的 OOP 概念

  1. 从一个简单的问题开始,然后深入。
  2. 什么是悬空参考?
  3. 继续讨论当我们访问它时会发生什么?
  4. 如何处理?我说我们可以使用引用计数或 std::auto_ptr 来避免悬空引用。他对 auto_ptr 智能指针概念很满意。
  5. 那么当另一个 auto_ptr 分配先前分配的 auto_ptr 时会发生什么(即当我们在 auto_ptr 中使用赋值运算符时)?我说只有一个 auto_ptr 可以容纳一个对象,所以旧的 auto_ptr 将指向 NULL。
  6. 现在,当 Old auto_ptr 试图访问一个对象(即 NULL)时会发生什么。我说运行时异常和程序可能会崩溃。
  7. 命名异常的类型。我说可能是分段错误。

更多问题,例如:

  1. 简单的问题。在异常处理中,在 try 块中写入“return 1”,在 final 块中写入“return 5”。函数会返回哪个值,为什么?
  2. 创建自己的堆溢出、栈溢出。你将如何处理它们?
  3. 虚函数在内部是如何工作的。也详细解释了具有多重继承概念的虚拟表的工作。
  4. 什么是纯虚函数,它的用途是什么?
  5. 什么是虚拟析构函数,我们为什么要使用它?关于它的讨论很少。
  6. 什么是迭代器?编写代码以实现给定 Stack 类的迭代器。
  7. 还有更多 OOPS 问题,正如我所说,这些问题很快就被问到了。

现在DS 和算法很简单,例如:

1.学生按行顺序坐在教室里。他们已经获得了考试成绩。现在老师来了,从第一排第一个学生开始,线性地问他们的分数,直到最后一行最后一个学生。在任何时间点,到现在为止的最高分都要被告知,在说出最高分之后学生应该离开课堂。下一次,剩下的分数将被告知最高分。所以基本上插入和删除就在那里。
我给出了使用 MAX heap 和插入 logn 和删除 logn 的解决方案。
或者使用插入 logn 和删除 logn 自我平衡 BST。

2.二叉树中最大的BST。以 O(n) 的时间复杂度实现了这一点。

3.实现电话词典。使用带有散列的 trie 给出解决方案。关于它的讨论很少,但最后很高兴。
在我看来,这一轮非常出色。
在 22 名学生中,有 5 名学生能够进入第三轮。

第三轮(面对面):主要是想迷惑大家。好玩。 (1:15 小时)。主要和我现在的工作有关。由于我在Java领域工作,使用 Spring & Hibernate,所以他们问了我一些关于 Spring & Hibernate 的基本问题。不深入。

他们专注于Java、OS & DS & Algo。

Java:

1. 可以覆盖静态方法吗?为什么?

我知道答案,所以解释得很详细。

2. 这个不错。

class Employee
{
  int age;
  String name;
  Date DOB;
}

在另一个类中,函数编写如下:

Object myFun(Employee obj, String attribute)
{
   //return proper attribute value without using conditions like If-Else, ternary or     
   // conditional operators like && etc.
}

现在如果我打电话:

myFun(obj, “name”); 

那么这个函数应该从作为参数传递的对象“obj”中返回员工的名字。因此,根据属性值的名称,它应该返回该对象的属性值。

DS & Algo很简单:

1.给定排序数组。除一次外,所有内容都重复两次。发现。通常人们会 XOR 并得到 O(n) 的结果。挑战来自使用排序属性来获取 log(n)。

2. 顺序排序的数组。都只出现一次。序列中缺少一个数字,并被替换为任何随机数字。查找丢失和随机数。这只是为了混淆尝试使用排序属性的人,而没有意识到在排序数组中搜索并不总是会导致 log(n) 解决方案。

这个问题的更多扭曲就像,所有重复两次,除了一个出现一次并且它的第二次出现被任何随机数替换。

还有2个修改。总的来说,它很简单,几乎不需要思考。

3. 使用 O(1) 额外空间将方阵旋转 90 度。这很有趣。

操作系统:

  1. 什么是僵尸进程?编写代码来创建僵尸进程。
  2. 什么是孤儿进程?用 C 编写代码也可以创建孤儿进程。
  3. 一问。给定一个具有属性 stud_name、English、phy、chem.、maths 的表。编写一个查询以按学生总分的降序显示学生的姓名。
  4. 什么是IPC? (问我朋友)。
  5. 空间中有N个点。查找两个给定点是否连接。这是一个图表问题。修改后的 Floyed Warshall 算法将起作用。 GeeksForGeeks 中也提供了其他好的算法。 (我朋友问的)

结果在 3-4 天后宣布。 5名学生中,有2人最终被选中。我是幸运儿之一。 🙂

特别感谢 GeeksForGeeks 团队。我从 1 年开始关注这个网站。这是我最喜欢的极客网站。现在我收到了来自 DE SHAW 的非常好的报价。您组织网站的方式很棒。您提供的算法简洁、高效且易于掌握。虽然整个 GeeksForGeeks 内容非常好,但我会推荐其他 Geeks 专门关注 GeeksForGeeks 算法和 G-Facts。

本文由Shahnawaz编译。很多人祝贺 Shahnawaz 被选中。如果您喜欢 GeeksforGeeks 并愿意做出贡献,您还可以撰写文章并将您的文章邮寄至 review-team@geeksforgeeks.org。在 GeeksforGeeks 主页上查看您的文章并帮助其他 Geeks。

DE-Shaw 的所有练习题