几周前我做了 eBay 的 online assessment,最近也做了 onsite 的 coding 轮。把两部分都记录下来,因为这个形式会让不少人措手不及。
Online Assessment(OA) Codaility 平台。2 道 coding,90 分钟。我拿到的题是: 一道 sliding window(中等难度,LeetCode 上能找到类似题)。统计满足 max 减 min 在某个阈值内的 subarray 数量。 一道图题,grid 上 BFS。不难,但约束很紧,naive DFS 会 TLE。
如果你一直在练习,这些都挺直观。90 分钟够用。OA 没有 behavioral 部分,就是写代码。
Onsite Coding Rounds 两场独立的 45 分钟 coding 面试。形式是共享 Google Doc 或 CoderPad,你写可运行的代码。他们会真的跑。
Round 1:字符串处理,中等。我大概 20 分钟就写出比较干净的解,剩下时间讨论 edge cases 和优化。他们要求我把 O(n^2) 优化到 O(n)。
Round 2:动态规划。不是最难的 DP,但他们在题目进行到一半时加了个 twist。这轮把我搞到了。最初的要求很简单,但他们中途改了一个约束,想看我能不能在不推倒重来的情况下调整。
整体难度: LeetCode medium,偶尔 medium-hard。我没见到我会称之为 hard 的题。但中途改约束才是真正的测试。
语言: 我用的是 Python。他们不介意你用什么。有个面试官还明确说他们更看重干净、可读的代码,而不是很炫的技巧。
准备建议:用 Google Doc 练几次不带自动补全的写代码。听起来很蠢,但真的有用。