12345678910111213141516171819202122232425262728293031323334 |
- from typing import List
- class Solution:
- def numIslands(self, grid: List[List[str]]) -> int:
- num = 0
- m, n = len(grid), len(grid[0])
- for i in range(m):
- for j in range(n):
- if grid[i][j] == '1':
- num += 1
- self.dfs(grid, i, j)
- return num
- def dfs(self, grid: List[List[str]], i: int, j: int):
- m, n = len(grid), len(grid[0])
- if i < 0 or j < 0 or i >= m or j >= n:
- return
- if grid[i][j] == '0':
- return
- grid[i][j] = "0"
- self.dfs(grid, i - 1, j)
- self.dfs(grid, i + 1, j)
- self.dfs(grid, i, j - 1)
- self.dfs(grid, i, j + 1)
- if __name__ == '__main__':
- print(Solution().numIslands([
- ["1", "1", "0", "0", "0"],
- ["1", "1", "0", "0", "0"],
- ["0", "0", "1", "0", "0"],
- ["0", "0", "0", "1", "1"]
- ]))
|