最近做了他们两轮 online assessment,再加两轮 live coding phone screen。下面是很真实的拆解,因为我真希望有人提前告诉我到底该怎么准备。
OA
两道 coding 题,总共 90 分钟。平台是 HackerRank。你可以选语言。我用的是 Python,环境没问题。
难度:一道 medium,一道我会叫 medium-hard。medium 是一个带小 twist 的图遍历题(带权边,但权重有条件行为)。更难那道涉及一些 number theory,把我打了个措手不及。如果你只做过「easy 和 medium 的 Leetcode 刷题」,在难题上可能会卡住。
OA 没有 proctoring camera,但别以为这就不重要。我被告知解答会被 engineer review,不只是自动评分。解法结构的可读性和正确性显然也会被看。
Live coding phone screens
比 OA 更开放。一位面试官给了一道我会归类为 Leetcode hard 的题(interval scheduling,加了一个我之前没见过的 resource constraint)。另一位是图题,基础是 medium,但 follow-up 会推到 hard 区间。
两位面试官都接受我边想边讲、问澄清问题。有一位还明确说「写之前先想一分钟」。
我会怎么准备:先把 Leetcode mediums 刷到像 easy 一样,然后开始加 graph、DP、intervals 这几个类别的 hards。字符串处理和 array sliding-window 这类,在 senior 的层级不太容易出现。另外要正式复习 time/space complexity。他们有一轮让我证明解法的时间复杂度,不只是口头说一下。
不算最糟糕意义上的 leetcode grind factory,但你得很扎实。这是 quant finance。他们会招那种真的能思考算法复杂度的人。