← 返回博客列表 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):
    # 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 周备考路线


五、常见问题 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 算法组