LC 200岛屿数量Number of Islands 中等
grid 是 '1'(陆地)/'0'(水) 的二维网格,统计陆地组成的岛屿数量(四方向相连算一块)。
思路 遍历网格,遇到 '1' 计数 +1 并 DFS/BFS 把整块淹成 '0'。
class Solution: def numIslands(self, grid: List[List[str]]) -> int: m, n = len(grid), len(grid[0]) def dfs(i, j): if not 0 <= i < m or not 0 <= j < n: return if grid[i][j] != '1': return grid[i][j] = '0' dfs(i + 1, j); dfs(i - 1, j) dfs(i, j + 1); dfs(i, j - 1) ans = 0 for i in range(m): for j in range(n): if grid[i][j] == '1': ans += 1 dfs(i, j) return ans