📅  最后修改于: 2023-12-03 14:40:40.982000             🧑  作者: Mango
DE Shaw是一家全球领先的量化投资公司,总部位于美国纽约市。在全球范围内,DE Shaw主要从事可以量化的交易,这个团队通常由来自数学、统计学、物理学、工程学、计算机科学、金融等领域的科学家和工程师组成。在2021年,DE Shaw曾在学校内进行了招聘,并参加其面试。
在参加DE Shaw的面试前,我对其业务进行了深入地研究,同时也对数据结构和算法进行了全面的复习。我还亲自制作了一份简历以及一份详细的面试答题集,以备不时之需。
DE Shaw的第一轮面试主要是关于算法和数据结构的问题。面试官会问一些基本的数据结构和算法的问题,例如哈希表、树、堆、排序算法、动态规划等等,然后会要求你详细地解释你所选的算法的时间复杂度和空间复杂度。
在我的面试过程中,我被问到了以下几个问题:
我的策略是首先给出简短的答案,然后解释它的时间复杂度和空间复杂度。面试官也对我的解释非常满意。
第二轮面试主要是关于编程的问题。面试官会给出一些编程题,让你在给定的时间内完成它们。在我的面试中,我被要求完成以下两道题目:
给定一个字符串s,找到其中的最长回文子串。
示例:
输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。
输入: "cbbd" 输出: "bb"
回文字符串是一个从左向右和从右向左读取都相同的字符串,即一个回文字符串是一个正着看和反着看都是一样的字符串。
在我的解法中,用了一个中心扩展的方法,即以某个字符为中心向左右扩展,如果左右两边的字符都相等,就继续扩展。这个解法的时间复杂度为$O(n^2)$。
给定一个二叉树,设计一个算法来返回其最大深度。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
这道题是一道比较经典的树的题目。在我的解法中,我使用了递归的方法,先判断当前节点是不是空,如果是空,返回0。如果不是空,递归地求出左右两个子树的深度,返回它们的最大值+1。
在第三轮面试中,面试官会问一些更具体的问题,例如你对某些算法的了解、编程语言的细节和你的项目经验等等。在我的面试中,面试官问到了以下几个问题:
DE Shaw的面试非常严谨和正式,考察的内容非常全面,包括算法、数据结构以及对编程语言和项目经验的了解。在成功通过DE Shaw的面试后,我对自己的编程水平和技能有了更深的理解和认识。