📜  DE Shaw 实习面试经验(校内)

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

DE Shaw 实习面试经验(校内)

DE Shaw 于 2019 年 8 月的第一周访问了我们的校园(MNIT Jaipur),进行了为期 2 个月的软件开发实习。

技术测试(50 分钟)-
1. 找出图中连接节点的最大数量。 (DFS)
2.从给定的数组中删除一些数字,以最大化奇数位置元素和偶数位置元素之和之间的差异。 (贪婪或 Dp)
例如 6 7 5 1 9 2 10
答案 23 ( 7, 1, 9, 2, 10)

我能够在 20 分钟内解决这两个问题,因此在面试中非常受欢迎。那些能够解决一个半问题的人被选中参加面试。
在88名学生中,有11人入围面试。

技术面试 1(50 分钟)-
有两个面试官,他们都非常乐于助人。

Python中list的内部实现。 (如果简历中提到了Python )

2. 在 C 中实现Python列表。我的第一个解决方案是使用结构和链表,然后继续使用联合和链表,最后使用带有 void * 指针的链表准确。

3. Python字典内部实现(散列)

4.更多关于Python装饰器、生成器、列表的问题,以及其他我不记得的Python基础问题。

5.关于unique_ptr和shared_ptr及其函数的C++问题。

6. 宏和typedef的区别。

7. 解释编译过程。

8. 解释虚函数(vptr 和 vtable)。

9. 简单讨论多重继承、钻石问题、解决方案。

10. 讨论操作系统,为什么需要它,页面替换算法和基本问题。 (不懂的可以跳过)

11. 调用构造函数、解构函数、复制构造函数的不同方法及其内部工作。复制构造函数中的指针大小写以及如何处理它。

12. 关于计算机体系结构的问题。 (因为我是ECE的学生,没学过计算机体系结构,所以跳过了。)

13. 我的简历中的问题,为什么我将我的主要语言从Python更改为 c++。我最喜欢的Python和 c++ 数据结构。

14. 关于我自己的基本问题,我在空闲时间做什么,我的爱好和我最喜欢的项目等等。

15. 为什么我选择 NodeJS 而不是所有其他后端语言。我给出了一个非常蹩脚的答案,因为我只学到了这一点,这就是我使用它的原因。他们笑了,但对答案很满意。

16.项目的简短介绍和讨论(时间很短)。

17.解释内联函数并区分内联和宏。

18.函数声明与定义的区别。

19. 头文件stdio的使用,其中是否声明或定义了函数及其基本细节。

20. 内存管理图。 (解释缓存级别 1、2、3、主内存、磁盘存储。)是什么让缓存快速?这些记忆是如何运作的?

21. c++ 中的文件处理以及如果我们在具有 4gb RAM 的计算机上打开一个 10gb 文件会发生什么。
我只是给出了一些答案,他们根本没有反应。

21.函数可以存储在Python列表中还是c++中的void *指针中?我说没有,但不知道对不对。

22. 有 n 件货物,重量为 ith 货物是 wi 和 m 辆卡车。您必须以这样的方式装载这辆卡车,使每辆卡车的重量几乎相等。
我为 m==2 提供了一个 DP 解决方案,他们没有要求我概括它。

11 名学生中有 5 名升入下一届 TI。你的编码回合得分、态度、信心和沟通技巧最重要。您必须对至少一门语言有深入的了解。在 geeksforgeeks 上阅读与您的主要语言相关的所有文章。

技术面试2(50分钟)-
这一轮也有两个面试官。他们也非常有帮助,并在相关时间提供了必要的提示。

1. 首先,他们让我感到舒服,并问我午餐吃了什么和一些一般性问题。

2. 他们问我的主要编码语言,并问我为什么在今天的测试中使用Python而不是 C++(我的主要编码语言)。

3. 对于编码测试的第一个问题,你能给出除dfs之外的另一种方法吗?
Sol: – 建议 bfs,蛮力接近,但他们不满意。然后我提供了一个集合和联合的方法,并解释了集合和联合的工作和用途。他们对这种方法感到满意。

4. 在 O(1)(最坏情况)内设计具有插入、删除和搜索操作的数据结构。
Sol: – 给定他们散列方法和不同的碰撞处理方法,但在最坏的情况下,所有方法都需要超过 O(1)。
然后他们告诉我数据将仅在 1-9999 范围内。
当插入一个数字时,我立即给出了一个数组的解决方案,在数字的位置设置 1,删除为 0。

5. 让我在 O(1) 中也实现 get random。
Sol:- 我能够使用 3 个数组破解解决方案。我在极客上找到的一种解决方案是这里。

6.关于Dp的问题。在矩阵中找到相邻元素之间的差值应为 1 的最长路径。您可以从任意点开始,并从元素向任意 8 个方向移动。
Sol: – 使用 Dp,他们要求在纸上写代码。他们只是检查逻辑,而不是语法,并要求我用他们给出的矩阵来干运行代码。我能够通过所有角落测试用例。

7. 根据您使用 c++ 和Python的经验,您认为哪种语言最有用,为什么?被要求在每个可能的方面比较语言。

8. 讨论我的项目并要求我展示我制作的任何网站。我的投资组合网站托管在 GitHub 上,所以我展示了这一点。

9. 问我 NodeJS 和 JavaScript 的内部结构,我回答我不太了解这些语言的内部结构。

10. 问我为什么使用 NodeJS,他们想要一些技术性的答案,不像上一个。

11. 一个关于博弈论的非常棘手的问题,我不记得了,但我无法按照他们的预期解决它。我给出了一个基本的解决方案,但他们希望我设计一个我无法设计的精确算法。

12.强类型语言和弱类型语言、动态语言和静态语言的区别以及c++和Python的区别。

13. Python中的列表理解,并试图通过编写字符串 + int 和许多其他会导致编译错误的函数来将我与Python混淆。 Python代码的输出预测。

这一轮过后,只有2名学生升入HR轮。在这一轮中,他们主要关注的是我的思维方式。不要拘泥于单一的解决方案,总是尝试探索各种其他可能性。

人力资源面试(15分钟)-
1. 你的面试怎么样?
2. 这是您的第一次体验吗?它曾是怎样的?
3. 说说你自己。
4. 为什么选择 DE Shaw?
5. 除 DE Shaw 外,您最理想的 3 家公司。
6. 考试怎么样?
7. 在 10 分制中,您如何评价今天的考试?有没有真正优秀的程序员但无法通过考试的学生?

两名学生被选中参加暑期实习,我有幸成为其中之一。
如果你愿意,那么在每一轮之后你可以向面试者提出一些问题。
例如,您可以询问他们公司使用的技术、语言或环境。