给定一个由 ‘1’(陆地)和 ‘0’(水域)组成的二维网格,计算岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或垂直方向上相邻的陆地连接形成。
这里假设网格的四个边界也被水包围。
示例:
输入:
11110
11010
11000
00000
输出: 1
输入:
11000
11000
00100
00011
输出: 3
这是一个典型的深度优先搜索(DFS)问题。我们遍历整个二维网格,当找到一个岛屿的起始点(即值为 ‘1’)时,通过 DFS 将该岛屿标记为已访问,并递归地访问相邻的陆地,直到岛屿的所有部分都被访问完。在整个过程中?