📜  DE Shaw实习面试经历|校外(1)

📅  最后修改于: 2023-12-03 15:30:24.845000             🧑  作者: Mango

DE Shaw实习面试经历|校外

背景介绍

DE Shaw是一家颇负盛名的quantitative investment firm。在过去几十年里,他们一直在投资领域将数据和技术杠杆化,通过算法交易,量化建模等方式来优化投资组合的回报。他们在美国、欧洲和亚洲都有办公室,并且一直在寻找新的人才来加入他们的团队,我的实习经历就是在DE Shaw的纽约总部实习的。

实习招聘流程

DE Shaw的招聘流程大致是这样的:

  1. 通过在官网和LinkedIn上寻找实习岗位来申请,并且提交简历和个人陈述。
  2. 如果个人陈述符合DE Shaw的要求,你就将得到赴纽约进行一天的面试的邀请。
  3. 在纽约面试的一天内,你会参加多个面试(大多是白板编程) ,并有可能会进行一些其他测试,比如编程测试、文化匹配测试等。
  4. 如果在一天面试中表现出色,你就将获得DE Shaw的实习岗位,并且将被分配到一个project上进行真正的工作。
面试问题

在我的一天面试中,我参加了9个面试,大部分是白板编程,有一些是面试官提问我会使用的算法和数据结构之类的。每个面试一般持续45分钟到1小时。

面试1:网格问题

题目:你有一个是m*n的网格,你要从网格的左上角走到右下角。你可以沿着网格中的任何一条竖直线或横向行动,但不能向上或向左。请问,有多少种方法可以从左上角到达右下角?

我的解法:这是一个最简单的动态规划问题。我用了一个2D数组来记录到达每个网格的不同方法数。这个问题虽然看似简单,但是面试官随后的跟进问题就不那么简单了,他要求我能否优化我的解法,以适应更大的网格。我尝试了一些方式,比如使用单行或单列的数组等等来解决这个问题。

面试2:最大子序列和问题

题目:给定一个整数序列A,你需要找到A中的一个或多个连续子序列,使得这些子序列的和最大。请写出一个算法来解决这个问题。

我的解法:这是一个经典的问题,我已经熟悉了它的解决方法。我的解法使用了动态规划和Kadane Algorithem。我的解决方法得到了面试官的信任,并且我在之后的跟进问题中解释了Kadane算法的思路和复杂度。

面试3:快速排序

题目:请写出一个递归实现的快速排序算法,要求使用in-place排序,不要使用额外的存储空间。

我的解法:这是一个很基本的问题,我很熟悉这个问题。我的解决方法使用了递归和指针操作。我首先使用了一个pivod指针来划分整个数组,并随后递归左右两部分以继续进行排序。

总结

DE Shaw的面试流程是相当挑战性的,如果要在这个过程中获得实习机会,需要大量的准备和练习。但是一个好的实习机会可以带来非常重要的经验和事业中的机会。我希望我的经验可以帮助你了解这个过程并有所收获。