Google Interview Experience – Island Boundary Problem(真实面试还原)- 一亩三分地

"." is water. "X" is land.
Given a coordinate of a land cell, return all water cells that touch the island this land cell belongs to.

我第一反应是:哦,岛屿 + DFS。

但我没有立刻写代码。
我停了两秒,说:

“你说的是这个 cell,还是整个 island?”

他笑了一下,说:

The whole island.

就这一句话,很多人会写错。

如果你只检查这个格子的邻居,你已经挂了一半。


我先确认了一下连通规则,是 4-direction,不算对角线。
他点头。

然后我开始说我的想法。

“我会先从这个点出发,把整个岛屿找出来。
用 BFS 或 DFS 都可以。
然后对于岛屿中的每个 land cell,我去检查它四个方向,只要是 water,就加入结果。”

我刻意慢一点讲。不是为了拖时间,而是给他空间插话。

Google 面试官很少打断你,但如果你讲得混乱,他会突然介入。

我一边写,一边说我在做什么。
visited 为什么需要。
为什么结果要用 set。
时间复杂度 worst case 是 O(mn)。

写完之后,他让我手动跑例子。

那一刻其实比写代码更紧张。
因为如果逻辑有一个小 bug,白板模拟是藏不住的。

跑完之后,他说:

That’s good.

语气平淡,但不是敷衍。

我以为结束了。

结果他往后靠了一下,说:

What if I want water cells that touch at least K land cells?

心里“哦了一声”。

这题瞬间变味了。

原本只是遍历,现在要统计邻接次数。
我改口说:

“那我需要记录每个 water cell 被多少个 land 邻接,最后过滤 >= K。”

他说 OK。

然后又来一句:

What if we need to answer this query many times?

这就不是刷题了,这是系统思维。

我说可以预处理,把每个岛屿标 ID,提前算好边界水域。
之后 query 就变成 O(1)。

如果你在准备 Google L4 / L5,
尤其是 VO 阶段。

这种题,值得练。

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

Leave a Reply

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