TikTok 面试真题解析:Number of Islands(岛屿数量)背后真正考察的能力

最近一位准备 TikTok Backend 岗位的学员,在一轮技术面试中遇到了这道题。题目本身并不复杂,甚至很多人第一反应是:“这不是 LeetCode 原题吗?”

原题如下:

Given an m x n 2D binary grid grid which represents a map of '1's (land) and '0's (water), return the number of islands.
An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically.
You may assume all four edges of the grid are all surrounded by water.

如果你刷过题,大概率写过。DFS、BFS、甚至 Union-Find 都可以解决。但真正的面试,远比你想象的复杂。


面试官给出题目后,并没有催他写代码,而是先问了一句:“你怎么理解这个问题?”

这一句其实已经开始考察表达能力了。

学员先确认了几个关键点:只算上下左右,不算对角线;grid 可以修改;边界视为水。确认完之后,他自然过渡到图遍历的建模思路——每一个未访问的 '1' 都可以视为一个新的连通分量起点。

听到这里,面试官点头,但马上追问:“如果 grid 很大呢?比如 10^4 x 10^4?”

很多候选人在这里会愣住,因为他们只准备了递归 DFS 的版本。

他停顿了一下,改成用 iterative DFS 或 BFS 来避免栈溢出,同时分析时间复杂度是 O(mn),空间复杂度取决于栈或队列大小。

面试官继续问:“有没有其他思路?”

他顺势讲了 Union-Find。如何把二维坐标映射到一维 index,如何只 union 上下左右,如何在遍历完成后统计 distinct root。

那一刻,面试官明显开始认真听了。


这道题表面是“岛屿数量”,本质其实在考图建模能力。

TikTok 这类公司非常在意候选人是否具备:

  • 把问题抽象成连通分量
  • 分析规模上限
  • 处理极端数据
  • 快速给出优化版本
  • 在压力下保持表达清晰

很多人不是不会写 DFS,而是在讲思路时断断续续;不是不会优化,而是优化版本讲得混乱;不是没准备,而是没有在真实压力环境下练习过。

真正拉开差距的,是表达能力和结构化思考。

如果你正在准备 TikTok、ByteDance 或其他大厂的 Backend 面试,建议不要只停留在“会做题”阶段。真正的 VO 面试,考的是完整思维过程,而不是最后那几行代码。

岛屿数量这种题目,你可以写对。但你能在 45 分钟内,清晰讲完三个解法并自然过渡吗?

这才是关键。

如果你想做一次接近真实强度的模拟面试,csoahelp 可以帮你还原完整面试场景,针对你的表达漏洞做针对性训练。

有时候,你和 offer 之间差的,不是算法,而是表达。

或者即将进入 VO 阶段,

我们也有代面试,面试辅助,OA代写等服务助您早日上岸~

Leave a Reply

Your email address will not be published. Required fields are marked *