我终于走完整个流程了,可以回来汇报一下。coding 部分我经历了两次:先是初始 OA,然后 virtual onsite 里又有两轮 live coding。下面是我记得的全部细节。
Online assessment(HackerRank,90 分钟,2 题):
题 1:string manipulation。大概是统计满足某些字符约束的有效子串数量。中等难度,可能偏 medium-easy。我大概 25 分钟做完。
题 2:更难。一道图题,BFS/DFS,找带权边的最短路径。我写出了能跑的解但不是最优。测试用例挺严格的,所以 partial credit 很重要。
如果你的目标是过 OA:LeetCode medium 的熟练度就是门槛。刷 50-60 道 medium,覆盖 arrays、strings、graphs、dynamic programming,基本就够了。
Live coding(CoderPad,phone screen 和 onsite 里都有):
phone screen 是一题,标准 medium,双指针思路,我卡住时面试官会帮一点。他让我先讲思路再写代码,所以感觉没那么像打分考试,更像 pair programming。
onsite 的 coding 轮:两场各 45 分钟。题目难度和 OA 差不多。有一题有 follow-up,面试官让我把最初的 O(n^2) 优化到 O(n log n),那段有点紧张。另一轮是 debugging:给你一段坏掉的代码,让你找问题。这个其实挺有意思,比纯刷 leetcode 不一样。
我注意到的点: 他们用“optimize”这个词的方式跟 FAANG 不太一样。他们更在意你的解能跑、你能解释清楚。尤其 debugging 那轮更像在测真实工作能力,而不是纯算法。
总的来说:如果你一直在大厂刷题但没上岸,ELC 可能是个能真正落地的选择。bar 是真的,但整个过程挺有人味。