寫在前面:ByteDance 2026 春招 OA 節奏明顯提前(Jan–Mar 高峰),且北美組與新加坡組共享題庫。本文根據 30+ 學員回饋,整理出當前真實分佈、平台規則與 4 週備考路線。
一、ByteDance OA 平台與流程
ByteDance OA 視投遞區域分為兩套平台:
| 區域 | 平台 | 題量 | 時長 |
|---|---|---|---|
| 北美 / 新加坡 | CodeSignal(Industry Coding) | 4 題 | 70 分鐘 |
| 中國 / 港澳 | 內部 OJ(牛客 / 自建) | 3–4 題 | 100–120 分鐘 |
觸發條件:
- 簡歷篩選通過後 3–7 天發出邀請;
- 邀請信 7 天有效,進入後必須一次完成;
- 北美少量 PM/PMM 職位會用 HackerRank(不在本文範圍)。
二、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 週備考路線
- Week 1:LC ByteDance tag Top 50(Easy + Medium)
- Week 2:滑窗 + 單調堆疊 / 單調佇列專題
- Week 3:DP + 圖論 30 題
- Week 4:CodeSignal 限時模擬 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 真題 / 代做?
- 微信:Coding0201 · 取得真題
- Email:[email protected]
- Telegram:@OAVOProxy
我們提供:當週 ByteDance 高頻題、限時模擬、OA 代做、VO 即時輔助。
最後更新:2026-05-11 | 作者:oavoservice 演算法組