Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
class : def__init__(self): self.count = 0 self.matrix = None
defnumIslands(self, grid: 'list[list[str]]') -> 'int': if len(grid) == 0: return0 if len(grid[0]) == 0: return0
self.matrix = [[0] * len(grid[0]) for _ in range(len(grid))]
for i in range(len(grid)): for j in range(len(grid[0])): if grid[i][j] == '1'and self.matrix[i][j] == 0: self.count += 1 self.dfs(i, j, grid)
return self.count
defdfs(self, x, y, grid): if grid[x][y] == '1': self.matrix[x][y] = 1 if x > 0and self.matrix[x-1][y] == 0: self.dfs(x-1, y, grid) if y > 0and self.matrix[x][y-1] == 0: self.dfs(x, y-1, grid) if x < len(grid)-1and self.matrix[x+1][y] == 0: self.dfs(x+1, y, grid) if y < len(grid[0])-1and self.matrix[x][y+1] == 0: self.dfs(x, y+1, grid)
近期评论