0200:岛屿数量(★)
目录
题目
给你一个由 '1'
(陆地)和 '0'
(水)组成的的二维网格,请你计算网格中岛屿的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。
此外,你可以假设该网格的四条边均被水包围。
示例 1:
输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"] ] 输出:1
示例 2:
输入:grid = [ ["1","1","0","0","0"], ["1","1","0","0","0"], ["0","0","1","0","0"], ["0","0","0","1","1"] ] 输出:3
提示:
m == grid.length
n == grid[i].length
1 <= m, n <= 300
grid[i][j]
的值为'0'
或'1'
相似问题:
- 0130:被围绕的区域
- 0286:墙与门
- 0305:岛屿数量 II
- 0323:无向图中连通分量的数目
- 0694:不同岛屿的数量
- 0695:岛屿的最大面积
- 1905:统计子岛屿(1678 分)
- 1992:找到所有的农场组(1539 分)
- 2316:统计无向图中无法互相到达点对数(1604 分)
- 2658:网格图中鱼的最大数目(1489 分)
分析
- 可以用 dfs/bfs 遍历找到每一个岛
- 连通问题更通用的办法是用并查集
- 将相邻的陆地连通
- 最终陆地连通块的个数即是所求
解答
|
|
244 ms