#776. 岛屿数量

岛屿数量

题目描述

统计二维矩阵中由 '1'组成的岛屿数量,相邻的陆地('1')如果在水平或垂直方向上相邻(上下左右),则视为同一个岛屿。对角相邻的陆地不视为同一个岛屿。

输入格式

一个二维字符矩阵 grid,其中 '1'表示陆地,'0'表示水域。

输出格式

矩阵中岛屿的总数量。

样例

输入样例 1

3 3
1 0 1
1 1 1
0 0 0

输出样例 1

岛屿数量: 1

输入样例 2

3 3
0 0 0
0 0 0
0 0 0

输出样例 2

岛屿数量: 0

输入样例 3

2 2
1 1
1 1

输出样例 3

岛屿数量: 1

提示

解题思路:核心方法:深度优先搜索(DFS) 或 广度优先搜索(BFS)。步骤: 1.遍历矩阵:逐个检查矩阵中的每个单元格。 2.发现陆地:当遇到一个未被访问过的 '1'(陆地)时,表示发现了一个新的岛屿,岛屿计数 count加 1。 3.标记与扩展:通过 DFS 或 BFS 将该陆地及其所有相邻的陆地(上下左右)标记为已访问(例如将 '1'改为 '0'或使用额外的 visited数组),以确保它们属于同一个岛屿,不会被重复计数。