← 返回博客列表 Meta New Grad Coding Round 复盘:合并区间 + 课程表,CoderPad 上的 dry run 心法
Meta

Meta New Grad Coding Round 复盘:合并区间 + 课程表,CoderPad 上的 dry run 心法

2026-06-06

Meta NG 的岗位已经开放,帮客户投了一份简历很快收到面试邀请。这篇主要分享 coding round 的完整流程、真实体验和两道真题。面试在 Zoom 上进行,写代码用 CoderPad(系统设计用 Excalidraw)。和一些公司不同,Meta 的 coding round 不要求真正跑测试通过,而是强调思维过程和代码严谨性——写完必须自己 dry run,一行行走数据、把边界情况讲出来。

一、Meta NG Coding Round 概览

维度 详情
平台 Zoom + CoderPad(设计题用 Excalidraw)
时长 45 分钟,两道题(每题约 20 min + 5 min 缓冲)
是否运行 不要求跑测试,强调 dry run
难度 高频 tag 题为主,第二题难度上升
风格 边写边讲,主动验证边界

节奏非常紧张:第一题卡太久,第二题基本做不完。心态要稳,碰到熟悉的 tag 题果断下手,别犹豫。

二、题 1:合并重叠区间

给定一组区间,把有重叠的区间合并成一个。

思路转化:经典 tag 题。先按起点排序,扫描一遍,当前区间与上一个重叠就合并成更大区间,否则加入结果集。见过几次后写起来很快。

def merge(intervals):
    if not intervals:
        return []
    intervals.sort(key=lambda x: x[0])
    res = [intervals[0][:]]
    for s, e in intervals[1:]:
        if s <= res[-1][1]:             # 重叠:合并
            res[-1][1] = max(res[-1][1], e)
        else:
            res.append([s, e])
    return res

dry run 示范:拿 [[1,3],[2,6],[8,10],[15,18]] 走一遍。排序后不变;前两个重叠合并成 [1,6],后两个保持不变,最终 [[1,6],[8,10],[15,18]]。一定要主动跟面试官交代边界:完全相邻(如 [1,2][2,3])算不算重叠?输入为空怎么处理?时间复杂度:O(n log n);空间复杂度:O(n)。

三、题 2:课程表(拓扑排序判环)

有若干门课,每门课可能依赖其他课程,问能否完成所有课程。本质是判断有向图里是否存在环——有环就无法完成。

思路转化:拓扑排序。我用 BFS(Kahn 算法):先统计每门课入度,不断取出入度为 0 的课,移除后把相邻课程入度 -1。最后能遍历完所有课说明无环。

from collections import deque

def can_finish(num_courses, prerequisites):
    graph = [[] for _ in range(num_courses)]
    indeg = [0] * num_courses
    for a, b in prerequisites:          # 学 a 前必须先学 b:b -> a
        graph[b].append(a)
        indeg[a] += 1

    q = deque(i for i in range(num_courses) if indeg[i] == 0)
    seen = 0
    while q:
        node = q.popleft()
        seen += 1
        for nxt in graph[node]:
            indeg[nxt] -= 1
            if indeg[nxt] == 0:
                q.append(nxt)
    return seen == num_courses          # 全部出队 = 无环

dry run 示范:依赖 [[1,0]](学 1 前要学 0)→ 从入度 0 的课程 0 出发,移除后课程 1 入度变 0,拓扑序 [0,1],全部学完返回 True。换成 [[0,1],[1,0]] → 互相依赖,没有入度 0 的节点能入队,seen < num_courses,返回 False时间复杂度:O(V+E);空间复杂度:O(V+E)。

Meta 面试官通常不会打断你,但希望你 边写边说,所以最好边实现边解释为什么选这个方法。

四、Meta Coding Round 心法

重点 做法
Tag 题积累 区间、排序、图论、滑动窗口、二分必须熟到秒下手
dry run 写完立刻举例走数据,覆盖 happy path + 边界
边界清单 空输入、单元素、相邻不重叠、有环 / 无环
边写边讲 持续输出思路,让面试官跟上你的逻辑

整个面试下来的感觉是:Meta 的 coding round 不是为了难为你,而是看你对常见题型的熟悉度,以及能否在有限时间里把解法完整走通。


FAQ

Q1:Meta NG coding round 用什么平台?要跑代码吗?

Zoom + CoderPad(系统设计用 Excalidraw)。不要求真正跑测试通过,而是要你写完自己 dry run,一行行走数据、讲清楚边界,考察思维过程与代码严谨性。

Q2:45 分钟两道题来得及吗?

每题约 20 分钟,留 5 分钟缓冲,节奏很紧。第一题卡太久第二题就做不完,所以碰到熟悉 tag 题要果断下手,别在简单题上耗太久。

Q3:Meta 高频考哪些 tag?

区间合并、拓扑排序 / 课程表、滑动窗口、二分查找、图的 BFS/DFS。这些是 NG coding round 的高频考点,务必练到看到就有思路。

Q4:dry run 到底要走到什么程度?

不只走 happy path,还要覆盖空输入、单元素、相邻但不重叠、有环 / 无环等边界。Meta 很在意你能否主动验证边界——这部分往往比 AC 更影响评分。


正在准备 Meta NG coding round?

Meta 考的是 tag 题熟练度 + dry run 严谨性 + 边写边讲的沟通。oavoservice 提供 Meta NG 的 coding round 全流程陪练:高频 tag 题限时模拟、dry run 走数据训练、边界清单专项,也支持 VO 辅助 / VO 代面 的实时对接。发岗位 JD 先做题型预测,再排练习计划。

立即添加微信 Coding0201获取 Meta NG 真题与陪练

联系方式