准备 Meta SDE 实习的同学要注意一个很容易被忽略的差异:Meta 的考察逻辑和 Amazon / Google 有明显不同。很多同学带着“刷 LeetCode + 背 Amazon LP”的惯性进去,结果在沟通节奏和答题逻辑上先被卡住,而不是卡在题目难度上。下面把 Tech 轮和 Behavioral 轮拆开详细说。

Meta Timeline 参考
我这次投的是美国这边的 Software Engineer 岗位,timeline 大概是:
- Recruiter reach out
- OA / Phone Screen
- Virtual Onsite(4轮)
- Team Matching
- Offer
整个流程不到一个月,推进速度非常 Meta。
Tech 轮:两道题 + Follow-up(45 分钟)
真题示例 1
Question: Given an array of integers nums and an integer k, return the number of unique subarrays where the sum is divisible by k.(类似 Continuous Subarray Sum 变体)
解题过程:
- Clarification(1-2 分钟,主动说):
- “确认一下:subarray 是连续子数组吗?k 的正负?数组长度范围?输出是 count 而非具体 subarrays,对吗?”
- Edge cases:空数组、k=1(所有 subarray 都符合)、k=0(需特殊处理)、负数、单个元素。
- 思路(Brute → Optimal):
- Brute:O(n²) 枚举所有 subarray,计算 sum % k == 0。
- Optimal:Prefix Sum + HashMap 记录余数出现次数(同余定理)。
- prefix[i] % k == prefix[j] % k ⇒ subarray (j+1 to i) sum % k == 0。
def subarraysDivByK(self, nums: List[int], k: int) -> int:
if not nums:
return 0
count = 0
prefix = 0
mod_count = {0: 1} # 关键:初始前缀和 0 出现 1 次
for num in nums:
prefix = (prefix + num) % k
if prefix in mod_count:
count += mod_count[prefix]
mod_count[prefix] = mod_count.get(prefix, 0) + 1
return count
- 复杂度:Time O(n),Space O(k)(k 通常较小)。
- Trade-off:如果 k 极大,可讨论进一步优化或直接 brute(视约束)。
- 主动问: “需要处理 follow-up 吗?比如返回具体 subarrays 或 k 很大场景?”
真题示例 2
Question: Binary Tree Vertical Order Traversal(LeetCode 314 类似)。给定二叉树 root,返回垂直遍历结果(从左到右,每列从上到下)。
解题过程:
- Clarification:列的顺序?同一列节点如何排序(top-down)?空树?不平衡树?
- 思路:BFS + Column Index(用 queue 带 column)。
- 用 map(defaultdict(list))记录 column → node values。
- 同时 track min/max column 保证从左到右输出。
from collections import defaultdict, deque
def verticalOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
if not root:
return []
col_map = defaultdict(list)
queue = deque([(root, 0)]) # node, column
min_col, max_col = 0, 0
while queue:
node, col = queue.popleft()
col_map[col].append(node.val)
min_col = min(min_col, col)
max_col = max(max_col, col)
if node.left:
queue.append((node.left, col - 1))
if node.right:
queue.append((node.right, col + 1))
return [col_map[c] for c in range(min_col, max_col + 1)]
- 复杂度:Time O(n),Space O(n)。
- Follow-up 常见:如果要求同一列按层级或值排序?如何处理 skewed tree?主动讨论 DFS vs BFS trade-off。
其他高频:
- Sliding Window(Longest Repeating Character Replacement)
- Two Pointers + HashMap(Product Except Self 变体)
- Graph BFS(Number of Islands)
CoderPad 加分习惯:变量用 prefix_sum、column_to_nodes;写完立刻说复杂度 + edge cases 测试;代码可读 + 注释。
Behavioral 轮高频题目 + 回答参考
Meta Behavioral 轮更注重真实 Ownership、Impact、独立判断力和沟通细节,反感模板化 STAR 和“正确废话”。用具体决策过程 + 可量化/可对比的 Before-After 效果 + 个人“I”主导来回答。
高频题目及回答参考
- Tell me about a project you’re most proud of(几乎必问,开场最高频)
- 核心考察:决策深度 + 个人贡献 + Impact
- 回答要点:Context(为什么做)→ 你的核心决策(1-2个关键选择及理由)→ 执行中的挑战 & 如何克服 → 量化/可感知结果(性能提升、用户数、分数等)→ 个人收获
- 建议:把“I”放中心,避免“我们团队”模糊化。
- Tell me about a time you had a conflict with a teammate(极高频)
- 核心考察:冲突诊断能力 + 沟通方式 + 解决结果
- 回答要点:分歧具体根因(技术/优先级/风格)→ 你的立场和依据(数据/用户角度)→ 如何沟通(1:1、私下、用对方关心点 re-framing)→ 最终共识 + 项目/团队影响
- 避坑:不要说“最后大家和好就行了”,必须有实质 resolution。
- Tell me about a time you had to learn something new quickly(实习生极高频)
- 核心考察:学习效率 + 转化落地能力
- 回答要点:场景必要性 → 学习路径(资源+时间分配)→ 具体障碍 & 突破方法 → 快速落地验证 → Before vs After 效果
- 示例场景:课程项目/科研中 3-5 天上手新框架/模型。
- Tell me about a time you dealt with ambiguity / unclear requirements
- 核心考察:独立思考 + 判断力
- 回答要点:模糊点具体是什么 → 你如何收集信息/做假设 → 决策框架(风险评估、优先级)→ 执行中如何迭代 → 最终结果
- 实习生素材:课题方向未定、项目需求频繁变动等完全够用。
- Tell me about a time you failed / made a mistake
- 核心考察:自省 + 学习能力
- 回答要点:错误具体是什么 → 根本原因 → 你如何发现/补救 → 后续 preventive action → 学到的教训(最好与后续项目关联)。
- Tell me about a time you received critical/negative feedback
- 核心考察:反馈接收与改进能力
- 回答要点:反馈内容 → 你的初始反应 → 如何反思验证 → 具体改进动作 → 后续验证效果。
- Tell me about a time you took initiative / went beyond your scope
- 核心考察:Ownership
- 回答要点:发现的问题/机会 → 为什么主动承担 → 做了哪些额外工作 → 产生的影响。
其他较常见:
- How do you prioritize when having multiple tasks / tight deadline?
- Tell me about a time you worked with a difficult stakeholder / cross-functional team.
- Why Meta?(简单版:对具体产品/技术/文化的真实兴趣 + 个人匹配)。
一些感受&准备参考
进入到VO环节,最重要的是提前适应 Meta 那种真实面试压迫感。
包括:
- 连续 VO 节奏
- 高频 follow-up
- communication 压力
- 被 challenge 时怎么稳住
- interviewer 打断后怎么拉回来
这些东西,自己刷题其实练不到。我后面很多节奏感,都是在Programhelp 那边做真实模拟和正式面试实时助攻之后,才慢慢稳定下来的。