LeetCode 题解:200. 岛屿数量,DFS,JavaScript,详细注释
原题连接:https://leetcode-cn.com/problems/number-of-islands/
解题思路:
根据题目描述,假设我们遇到一个坐标
grid[i][j] === '1'
,那么从它开始不断将坐标向上下左右移动,只要坐标的值还是 1,则遇到的所有点都属于同一个岛屿。我们可以使用两个嵌套的 for 循环遍历当前网格,如果遇到 1 个坐标为 1,表示遇到了一个岛,此时将岛屿数量加 1。
同时用 DFS 将当前坐标所有相邻的坐标都设置为 0,也就是将这个岛屿沉没。
完成递归后,将会继续遍历网格,单剩余岛屿的坐标都已被清零,不会被重复计数。
当训话结束时,我们就知道了岛屿的数量。
复制代码
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/5cbb930df4311264442e211dc】。文章转载请联系作者。
评论