这是一场 TikTok General Technical Interview 的真实还原。
开场环节
面试官非常直接:
“Today we will have a general technical interview. First a brief introduction, then one coding question.”
候选人做了大约 3 分钟自我介绍,讲了:
- USC CS 硕士
- Amazon Visual Search 团队
- 后端 + 用户行为分析
- 图像匹配系统优化 20% latency
- 对 AI 应用很感兴趣
面试官没有深挖,直接进入 coding。
这种节奏在 TikTok 很常见——
寒暄很短,coding 才是核心。
题目展示
题目如下:
Given a grid, there are A's, B's, and 0's.
Find the shortest distance between any A and any B.
(can move in 4 directions: up, down, left, right)
举例:
[[A, 0, 0],
[0, B, 0],
[A, B, 0]]
Output: 1
第一反应:单源 BFS
候选人读题后马上确认:
“So basically it’s finding the shortest distance between A and B in the grid, right?”
思路非常自然:
- 遍历所有 A
- 对每个 A 做一次 BFS
- 找最近的 B
- 取最小值
这是一个正确但不够优的答案。
面试官立刻追问:
“What will be the time complexity?”
候选人回答:
“Worst case traverse entire grid, so O(R * C)”
面试官没有放过:
“But you do BFS for every A… there may be multiple A.”
这里是关键点。
面试真正考察的点出现了
如果有 K 个 A:
时间复杂度 = O(K × R × C)
在最坏情况下,K 接近 R×C。
那就是:
O((R×C)²)
面试官提示:
“How about you just do BFS for all A at the same time?”
这一句其实已经是强烈引导。
正确优化:Multi-source BFS
候选人思考几秒后理解:
- 把所有 A 一次性入队
- 同时作为 BFS 起点
- 层序扩散
- 第一次遇到 B 就是全局最短
这就是典型:
Multi-source BFS
时间复杂度直接降为:
O(R × C)
因为每个节点最多入队一次。
面试官确认:
“When you first see B, that should be the shortest one, right?”
候选人:
“Yes, that makes sense.”
这一段就是这场面试的核心。
Coding 过程
候选人选择 Java,实现逻辑包括:
- 方向数组
- visited[][]
- queue
- 先扫描 grid,把所有 A 入队,distance=0
- BFS 扩散
- 遇到 B 立即 return
细节方面:
✔ 有 boundary check
✔ 有 visited 标记
✔ 正确处理 rectangular grid(面试官特意测试)
面试官还额外让他:
“Try a rectangular grid, not square.”
很多人会忽略这一点。
候选人代码处理 rows 和 columns 分离,没有问题。
结束前的反向提问
Coding 结束后,候选人问:
- Backend 主要用什么语言?
- 前 6 个月成功标准是什么?
- 在 TikTok 工作最享受什么?
面试官回答:
- Go 是主语言
- Backend 工具熟悉即可
- 公司允许自由使用 AI 工具
面试整体氛围:
不刁难
但会在复杂度上深挖
更重思维过程而不是技巧
这道题真正考什么?
表面是 BFS。
真正考:
- 你是否能意识到多起点优化
- 是否理解 BFS 层级性质
- 是否能分析复杂度
- 是否能在被 challenge 后迅速调整思路
很多人会卡在第一步:
“对每个 A 做 BFS”
但 TikTok 想看的是:
你是否 instinctively 想到 multi-source。
如果没有提示怎么办?
真正高阶候选人应该这样推导:
- 单源 BFS → O(K·RC)
- K 最坏为 RC
- 明显可优化
- 把所有 A 当成一个超级源点
这一步,是 senior 和 junior 的分水岭。
我们在 TikTok OA / VO 辅助中会做什么?
如何在被追问时不慌
如何在 30 秒内意识到复杂度问题
如何优雅地完成优化
或者即将进入 VO 阶段,
我们也有代面试,面试辅助,OA代写等服务助您早日上岸~

