📜  DE Shaw 面试经历 |设置 19(校内)(1)

📅  最后修改于: 2023-12-03 14:40:41.007000             🧑  作者: Mango

DE Shaw 面试经历 |设置 19(校内)

前言

DE Shaw 是一家享誉全球的对冲基金公司,其科技创新、先进的算法和分布式系统被业内广泛认可。它在各大高校中招聘优秀的计算机科学与技术专业的毕业生,下面是我的面试经历。

投递简历

我是通过 DE Shaw 的校园招聘网站投递的简历。其中,我需要提交我的简历、求职信和成绩单。

一面

一面是在线的编程测试,需要在 90 分钟内完成筛选程序设计题和算法题。我需要用 Python 实现一个比较规范、高效的程序。

题目包括:

  • 给定一个由小写字母构成的字符串s,然后在字符串s中找到第一个只出现一次的字符,并返回它的索引值。如果没有,则返回-1。
  • 给定一个单链表,将链表节点按奇偶标号分隔在一个链表中。

我的反应速度还可以,Python 的基础也比较扎实,所以没有遇到什么大问题。整体上,这是一场很正常的笔试。

二面

通过了一面,我就被邀请到了下一轮面试。面试官是一位 DE Shaw 的技术主管,主要是考察我的算法、体系结构和编程能力。这也是 DE Shaw 最重要的部分。

这次面试主要是围绕以下问题展开:

  • 如何设计一个缓存系统?
  • 讲一下红黑树和 B 树的区别?
  • 如何在分布式系统中处理并发问题?

我在大学期间也参加了一些算法竞赛,并在leetcode上刷了不少题目,所以对这部分内容还算熟悉。但是由于没有实际工作经验,所以一些问题还是有些犯难。

三面

第三轮面试是 DE Shaw 对我能力的最终审查。这次面试的主要目的是了解我的领导能力、个性、专业能力和心理素质。

面试主管主要考察了:

  • 我是如何管理我的项目的?
  • 我的工作经验和最后的成果是什么?
  • 我是如何与其他团队成员合作的?

这次面试持续了一个小时,它综合考察了我所有的技能和经验。个人认为这一轮面试是最为重要的一轮。

总结

DE Shaw 的面试真正考察能力,它注重的不仅仅是编程技术,还考察了面试者的个性、领导能力和与团队合作沟通的能力。这是一家公认的技术强的公司,我相信,在这里工作能够锻炼我独立思考、领导能力和开发高端技术的能力。

代码片段:

class Solution(object):
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        count = {}
        for c in s:
            count[c] = count.get(c, 0) + 1
        for i in range(len(s)):
            if count[s[i]] == 1:
                return i
        return -1

class Solution(object):
    def oddEvenList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if not head or not head.next:
            return head
        
        odd, even = head, head.next
        even_head = even
        
        while even and even.next:
            odd.next = even.next
            odd = odd.next
            even.next = odd.next
            even = even.next
        
        odd.next = even_head
        
        return head

这是第一轮笔试的题目解答,我的代码很简单,但是作者期望阅读者可以在我的代码基础上进行更好的优化。