← 返回部落格列表 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 真題與陪練

聯絡方式