大家好,
我最近拿到了 E4 Infra(美国)岗位的 Offer,想和大家分享一下我的面试经历。
电话面试(Phone Screen)
- 合并区间的变体:给出 2 个不同的区间列表,需要将它们合并起来。
- 验证回文:就是 LeetCode 上那个判断回文的题目。
我在合并区间这道题上做得还行,思路正确但代码里有一两个小 Bug。回文题目则在 5 分钟内顺利完成。
Coding Round 1
- 我没见过的题目:给定一个二叉树,返回最大子树的值(子树可以是根节点,也可能包含负数节点)。
- 账户合并的变体:输入是以 hashmap 形式给出的。
第一题真的很简单。对于“账户合并”我知道正确的解决方案,并且也解释得比较清楚。最终我把代码都写完了,但因为花时间跑了一遍测试用例,导致没能完整验证就没时间了。当时我真的以为自己这一轮会被刷掉。
Coding Round 2
- 简化路径的变体:给定当前工作目录(cwd),在此基础上再进行路径简化。
- 基础计算器的变体:只需要实现
+
和*
运算。
我觉得这轮题对我来说很幸运,因为我之前都学过相应的变体。对基础计算器那题,我先用了栈(stack)来实现,然后面试官又让我谈了 O(1) 解法的思路。
系统设计(System Design)
设计 LeetCode。我完全按照 “hellointerview” 提供的步骤走,感觉这一轮发挥得非常好。
行为面试(Behavioral)
主要就是常规的行为面试问题,比如冲突解决(conflict resolution)、领导力(leadership)等。我提前准备了相应的故事素材。
整体来说,我对能不能拿到 Offer 没什么把握,尤其是因为电话面试和第一轮 Coding 面试感觉不算太好。但看来我在其他几轮的表现足够弥补了,最终拿到了通过的结果。
最后想感谢 Coding with Minmer 的优秀备考视频——我面到的所有变体都在他的视频里有提到,真的非常有帮助。