今年春天面了 Jane Street 的 coding 轮。写详细点,因为我之前备考备错方向,浪费了时间。
Online assessment(第一道筛选): 两道题,90 分钟,HackerRank 风格的平台。一道 medium 图题,另一道更难。大概是 Leetcode hard 的难度区间,但表述比较不常见。他们喜欢那种需要你发现不明显的约束,然后重新建模的题。我第二题花了 30 分钟,只过了 60% 的测试用例,还是推进了,所以 partial credit 确实算数。
Technical phone screen(onsite 前): 现场写代码,45 分钟,一道题。我的是 interval merge 的变体,但多了一些 state。面试官全程看我大声想。他中途两次改约束条件,这是刻意的:他们想看你怎么适应。如果他们改题你就僵住,那就是 red flag。
Onsite 的 coding rounds: onsite 里有三轮 coding,每轮 60 分钟,一轮一道题。我遇到的题是: 一个模拟题,state machine 很复杂 一个组合数学题,用递归 + memoization 一个更短但更阴的题,看起来简单,但 edge case 把我打爆
每道题都要求代码干净、正确,不只是能跑。他们每轮都会问 time complexity。有个面试官还让我用不同的数据结构把解法重写一遍。
备考做 Leetcode hard 并不过分。但盲刷 hard 不是重点。练那种解到一半要改约束的题,并且习惯在不确定的时候也能继续把思路说清楚,不要崩。这就是我过的轮次和没过的轮次之间的差别。