← 返回部落格列表 ByteDance OA 2026 題型分佈與備考指南|SDE Intern / NG 實戰手冊
ByteDance

ByteDance OA 2026 題型分佈與備考指南|SDE Intern / NG 實戰手冊

2026-05-11

寫在前面:ByteDance 2026 春招 OA 節奏明顯提前(Jan–Mar 高峰),且北美組與新加坡組共享題庫。本文根據 30+ 學員回饋,整理出當前真實分佈、平台規則與 4 週備考路線。


一、ByteDance OA 平台與流程

ByteDance OA 視投遞區域分為兩套平台:

區域 平台 題量 時長
北美 / 新加坡 CodeSignal(Industry Coding) 4 題 70 分鐘
中國 / 港澳 內部 OJ(牛客 / 自建) 3–4 題 100–120 分鐘

觸發條件


二、4 大高頻題型與代表題

2.1 陣列 / 雜湊(約 30%)

代表題:相鄰差不超過 k 的最長子序列。

def longest_bounded_subseq(nums, k):
    from collections import Counter
    cnt = Counter(nums)
    keys = sorted(cnt)
    best = 0
    j = 0
    cur = 0
    for i in range(len(keys)):
        cur += cnt[keys[i]]
        while keys[i] - keys[j] > k:
            cur -= cnt[keys[j]]
            j += 1
        best = max(best, cur)
    return best

複雜度:O(n log n)。

2.2 滑動視窗(約 25%)

代表題:最長無重複字元 / 子陣列和 ≥ k 的最短視窗。

def shortest_subarray_sum_at_least_k(nums, k):
    from collections import deque
    n = len(nums)
    pre = [0] * (n + 1)
    for i, x in enumerate(nums):
        pre[i + 1] = pre[i] + x
    dq = deque()
    best = n + 1
    for i in range(n + 1):
        while dq and pre[i] - pre[dq[0]] >= k:
            best = min(best, i - dq.popleft())
        while dq and pre[dq[-1]] >= pre[i]:
            dq.pop()
        dq.append(i)
    return best if best <= n else -1

複雜度:O(n)。

2.3 動態規劃(約 25%)

代表題:唯一路徑數(含欄位約束)/ 編輯距離變體。

def unique_paths_with_blocked(grid):
    R, C = len(grid), len(grid[0])
    dp = [[0] * C for _ in range(R)]
    dp[0][0] = 1 if grid[0][0] == 0 else 0
    for r in range(R):
        for c in range(C):
            if grid[r][c] == 1:
                dp[r][c] = 0
                continue
            if r > 0:
                dp[r][c] += dp[r - 1][c]
            if c > 0:
                dp[r][c] += dp[r][c - 1]
    return dp[-1][-1]

複雜度:O(R·C)。

2.4 圖論(約 20%)

代表題:最大直方圖矩形(單調堆疊)/ 網格 BFS / 拓撲排序。

def largest_rectangle_in_histogram(heights):
    stack = []
    best = 0
    heights.append(0)
    for i, h in enumerate(heights):
        while stack and heights[stack[-1]] > h:
            top = stack.pop()
            left = stack[-1] if stack else -1
            best = max(best, heights[top] * (i - left - 1))
        stack.append(i)
    heights.pop()
    return best

複雜度:O(n)。


三、70 分鐘 4 題節奏(北美 CodeSignal)

階段 用時 動作
0–3 min 通讀 4 題 標註難度,規劃順序
3–18 min Q1(最簡) 必拿滿分
18–38 min Q2 寫到能跑通 sample
38–58 min Q3 至少拿 50% 測資
58–70 min Q4 寫部分程式碼,爭取部分分

CodeSignal 的 Industry Coding 不是全或無,部分測資也有分,不要因為做不完就放棄


四、4 週備考路線


五、常見問題 FAQ

Q1:ByteDance OA 一共幾題?

A:北美 4 題 / 70 分鐘(CodeSignal),中國 3–4 題 / 100–120 分鐘(牛客/內部 OJ)。

Q2:CodeSignal 上能切分頁嗎?

A:可以,但會被記錄。北美 OA 反作弊正在加強,建議不要切。

Q3:用 Python 寫 ByteDance OA 會 TLE 嗎?

A:n ≤ 10^5 幾乎不會,n ≥ 10^6 建議改 C++ 或使用 sys.stdin 讀取。

Q4:ByteDance OA 掛了多久能再投?

A:北美隱性冷凍期約 3 個月,中國一般 6 個月

Q5:北美和中國 OA 題庫一樣嗎?

A:部分共享,約 30–40% 題目在兩側都出現過,但順序和測資點不同。

Q6:ByteDance OA 有 BQ 題嗎?

A:OA 階段只有程式題,BQ 在 onsite 階段。

Q7:通過 OA 後多久會面試?

A:通常 1–2 週內安排第一輪電面。

Q8:ByteDance OA 給 review?

A:不公開評分,但 HR 信件會告知是否通過。


六、需要 ByteDance OA 真題 / 代做?

我們提供:當週 ByteDance 高頻題、限時模擬、OA 代做、VO 即時輔助。


最後更新:2026-05-11 | 作者:oavoservice 演算法組