写在前面: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):
# nums 已排序时退化为相邻差 ≤ k 的连续段
from collections import Counter
cnt = Counter(nums)
keys = sorted(cnt)
best = 0
j = 0
cur = 0
for i, x in enumerate(keys):
cur += cnt[x]
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 算法组