📅  最后修改于: 2023-12-03 15:30:24.845000             🧑  作者: Mango
DE Shaw是一家颇负盛名的quantitative investment firm。在过去几十年里,他们一直在投资领域将数据和技术杠杆化,通过算法交易,量化建模等方式来优化投资组合的回报。他们在美国、欧洲和亚洲都有办公室,并且一直在寻找新的人才来加入他们的团队,我的实习经历就是在DE Shaw的纽约总部实习的。
DE Shaw的招聘流程大致是这样的:
在我的一天面试中,我参加了9个面试,大部分是白板编程,有一些是面试官提问我会使用的算法和数据结构之类的。每个面试一般持续45分钟到1小时。
题目:你有一个是m*n的网格,你要从网格的左上角走到右下角。你可以沿着网格中的任何一条竖直线或横向行动,但不能向上或向左。请问,有多少种方法可以从左上角到达右下角?
我的解法:这是一个最简单的动态规划问题。我用了一个2D数组来记录到达每个网格的不同方法数。这个问题虽然看似简单,但是面试官随后的跟进问题就不那么简单了,他要求我能否优化我的解法,以适应更大的网格。我尝试了一些方式,比如使用单行或单列的数组等等来解决这个问题。
题目:给定一个整数序列A,你需要找到A中的一个或多个连续子序列,使得这些子序列的和最大。请写出一个算法来解决这个问题。
我的解法:这是一个经典的问题,我已经熟悉了它的解决方法。我的解法使用了动态规划和Kadane Algorithem。我的解决方法得到了面试官的信任,并且我在之后的跟进问题中解释了Kadane算法的思路和复杂度。
题目:请写出一个递归实现的快速排序算法,要求使用in-place排序,不要使用额外的存储空间。
我的解法:这是一个很基本的问题,我很熟悉这个问题。我的解决方法使用了递归和指针操作。我首先使用了一个pivod指针来划分整个数组,并随后递归左右两部分以继续进行排序。
DE Shaw的面试流程是相当挑战性的,如果要在这个过程中获得实习机会,需要大量的准备和练习。但是一个好的实习机会可以带来非常重要的经验和事业中的机会。我希望我的经验可以帮助你了解这个过程并有所收获。