LeetCode-200-NumberOfLands
1.题目:
岛屿的个数
给定一个由 '1'
(陆地)和 '0'
(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。
示例 1:
1 | 输入: |
示例 2:
1 | 输入: |
2.解答:
我们需要在矩阵中找到由'1'
组成的陆地,当我们从一个点出发时,需要判断它的上下左右4点是否为'1'
,如果有为'1'
的点,则重复上述动作;若出现不为'1'
,则说明到达陆地边界.这实际上就是对一个点进行深度遍历,递归查找为'1'
点,直到找到整个陆地.
我们需要注意的是,我们可能会重复遍历同一个点,为了解决这个问题,当我们已经确定当前点为'1'
时,我们将它置为'0'
.
代码:
1 | class Solution { |