题目解析
本题是“孤岛”数量问题。
原型题可以参考:LeetCode - 200 岛屿数量_岛屿数量伏城之外-****博客
本题相较于原型题变化在于:“相邻” 可以是八个方向上的。
对于孤岛数量问题,有多种解题思路:
- 并查集解题,相邻1进行合并,最终连通分量的数量 减去 地图中0的数量 即为题解。
- 图遍历:遍历地图,如果当前位置是1,则触发下面深搜或广搜,最终触发几次,则为最终需要点击次数
- 深搜:从当前位置开始向相邻八个方向深搜,深搜遇到1则反转为0,遇到0则对应分支结束。
- 广搜:从当前位置开始向相邻八个方向扩散(广搜),广搜过程遇到1则反转为0,且对应位置入队作为下一轮的扩散源,遇到0则对应位置不入队。
本题数量级稍大,推荐广搜。