LeetCode Python 岛屿的个数

给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。

示例 1:

输入:
11110
11010
11000
00000

输出: 1
class Solution(object):
    def numIslands(self, grid):
        row = len(grid)
        if row == 0 or grid == None:
            return 0
        col = len(grid[0])
        count = 0
        for i in range(row):
            for j in range(col):
                if grid[i][j] == 1:
                    self.dfsFind(grid, i, j, row, col)
                    count += 1
        return count

    def dfsFind(self, grid, i, j, row, col):
        if grid[i][j] == 1:
            grid[i][j] = 0
            if i - 1 >= 0:
                grid = self.dfsFind(grid, i - 1, j, row, col)
            if i + 1 < row:
                grid = self.dfsFind(grid, i + 1, j, row, col)
            if j - 1 >= -0:
                grid = self.dfsFind(grid, i, j - 1, row, col)
            if j + 1 < col:
                grid = self.dfsFind(grid, i, j + 1, row, col)
        return grid

猜你喜欢

转载自blog.csdn.net/qq_30123335/article/details/82885352