TikTok (ByteDance's international platform) OA is known for its high question count and scenario-based problems — 110 points across 7 questions, identical for all positions and regions. Difficulty is moderate, but time management is critical.
OA Overview
| Aspect | Details |
|---|---|
| Platform | Internal Platform |
| Duration | 120 minutes |
| Questions | 7 (total 110 points) |
| Difficulty | Easy-Medium |
| Focus | Greedy, DP, BFS/DFS, Binary Search, Simulation |
Question Type 1: Video Feedback Optimization
Given a binary array videoFeedback (1 = positive, 0 = negative), choose a contiguous interval [l, r] to keep unchanged while flipping everything outside. Maximize total positive feedback count.
def max_positive_feedback(feedback):
n = len(feedback)
total_zeros = n - sum(feedback)
transformed = [2 * x - 1 for x in feedback]
max_sum = float('-inf')
current_sum = 0
for val in transformed:
current_sum = max(val, current_sum + val)
max_sum = max(max_sum, current_sum)
return total_zeros + max(0, max_sum)
Time Complexity: O(n)
Question Type 2: Server Delay Optimization
Data packets travel through n servers. Skip at most k servers (not first/last) to minimize total delay.
def min_total_delay(delays, k):
n = len(delays)
if n <= k + 2:
return delays[0] + delays[-1]
dp = [[float('inf')] * (k + 1) for _ in range(n)]
dp[0][0] = delays[0]
for i in range(1, n):
for j in range(k + 1):
dp[i][j] = min(dp[i][j], dp[i-1][j] + delays[i])
if j > 0 and i != n - 1:
dp[i][j] = min(dp[i][j], dp[i-1][j-1])
return min(dp[n-1])
Question Type 3: Viral Campaign Minimum Seeds
Find minimum initial users to target so that information eventually reaches everyone through social influence cascading.
from collections import defaultdict, deque
def min_seed_users(n, edges):
in_degree = [0] * n
graph = defaultdict(list)
for a, b in edges:
graph[a].append(b)
in_degree[b] += 1
seeds = [i for i in range(n) if in_degree[i] == 0]
return len(seeds) if seeds else 1
Question Type 4: Relevance Score Adjustment (Binary Search)
Find minimum x such that after at most maxAdjustments operations (each reducing a score by x), all scores become non-positive.
def min_adjustment_value(scores, max_adjustments):
def can_achieve(x):
adjustments_needed = 0
for s in scores:
if s > 0:
adjustments_needed += (s + x - 1) // x
return adjustments_needed <= max_adjustments
left, right = 1, max(scores)
while left < right:
mid = (left + right) // 2
if can_achieve(mid):
right = mid
else:
left = mid + 1
return left
Time Management Strategy
| Question Type | Suggested Time | Points |
|---|---|---|
| Easy (1-2 questions) | 10-15 min each | 10-15 pts |
| Medium (3-4 questions) | 15-20 min each | 15-20 pts |
| Hard (1-2 questions) | 20-25 min each | 20-25 pts |
FAQ
Are TikTok OA questions the same for all positions?
Yes, TikTok uses the same question set (110 points, 7 questions) for all positions and regions, regardless of whether you're applying for SDE, MLE, or Data roles.
What's the passing score for TikTok OA?
Based on community feedback, you typically need 80-90+ points to advance. With 110 total points, aim to solve at least 5-6 questions correctly.
How does TikTok OA compare to ByteDance's domestic exam?
TikTok OA is slightly easier than ByteDance's domestic exam but has more questions (7 vs 4). Time management becomes more critical.
What comes after the TikTok OA?
After passing OA, expect 2-3 technical interviews (algorithms + system design), followed by a Hiring Manager interview. Timeline from OA to offer is typically 4-6 weeks.
What languages can I use for TikTok OA?
Python, C++, Java, and JavaScript are all supported. Python is recommended due to the high question count requiring fast coding.
Preparing for TikTok OA?
oavoservice provides professional TikTok/ByteDance OA/VO assistance covering all global regions.
👉 Contact WeChat: Coding0201 | Get assistance
Contact
Email: [email protected]
Telegram: @OAVOProxy