Heads-up: ByteDance's 2026 spring OA cycle started earlier than usual (Jan–Mar peak), and the North America and Singapore tracks share a question pool. This piece aggregates 30+ candidate debriefs into a concrete distribution + platform rules + 4-week roadmap.
1. Platform & flow
| Region | Platform | # questions | Time |
|---|---|---|---|
| North America / Singapore | CodeSignal (Industry Coding) | 4 | 70 min |
| China / HK / Macau | Internal OJ (Niuke / in-house) | 3–4 | 100–120 min |
Trigger conditions:
- 3–7 days after resume screen passes;
- Email link valid for 7 days, must complete in a single session;
- Some NA PM/PMM roles use HackerRank (out of scope here).
2. Four high-frequency categories
2.1 Array / Hashing (~30%)
Representative: longest subsequence with bounded adjacent differences.
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
Complexity: O(n log n).
2.2 Sliding window (~25%)
Representative: shortest subarray sum ≥ 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
Complexity: O(n).
2.3 Dynamic programming (~25%)
Representative: unique paths with column constraints / edit distance variants.
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]
Complexity: O(R·C).
2.4 Graph / Stack (~20%)
Representative: largest rectangle in histogram, grid BFS, topological sort.
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
Complexity: O(n).
3. 70-minute 4-question cadence (NA CodeSignal)
| Phase | Time | Action |
|---|---|---|
| 0–3 min | Read all 4 | Rank difficulty |
| 3–18 min | Q1 (easiest) | Full marks |
| 18–38 min | Q2 | At least sample-passing |
| 38–58 min | Q3 | Aim for 50% hidden tests |
| 58–70 min | Q4 | Partial code, fish for partials |
CodeSignal Industry Coding is not all-or-nothing — partial tests carry partial credit. Don't give up just because you can't finish.
4. 4-week roadmap
- Week 1: LC ByteDance tag Top 50 (Easy + Medium)
- Week 2: Sliding window + monotonic stack / queue
- Week 3: 30 DP + graph problems
- Week 4: 4 timed CodeSignal mocks
5. FAQ
Q1: How many problems does ByteDance OA have?
A: NA: 4 / 70 min on CodeSignal. China: 3–4 / 100–120 min on Niuke or in-house OJ.
Q2: Can I tab away on CodeSignal?
A: Allowed but logged. NA anti-cheating is tightening — don't.
Q3: Will Python TLE on ByteDance OA?
A: Rarely at n ≤ 10^5. For n ≥ 10^6 switch to C++ or use sys.stdin.
Q4: Cooldown after failing?
A: ~3 months in NA, ~6 months in China.
Q5: Are NA and China question pools the same?
A: Partially shared (~30–40% overlap), but ordering and hidden tests differ.
Q6: Does ByteDance OA include BQ?
A: OA is coding-only. BQ comes at onsite.
Q7: How fast is the post-OA pipeline?
A: Phone screens typically scheduled 1–2 weeks after passing.
Q8: Will I get a score breakdown?
A: No public scoring, but HR will email pass/fail.
6. Need ByteDance OA help?
- WeChat: Coding0201 · contact us
- Email: [email protected]
- Telegram: @OAVOProxy
We offer current-week ByteDance high-frequency questions, timed mocks, OA done-for-you, and live VO support.
Last updated: 2026-05-11 | Author: oavoservice algorithm team