岛屿数量 -- 二维矩阵的dfs算法
岛屿数量
又被称为 FloodFill 算法
class NumIslands:"""floodFill 算法https://leetcode.cn/problems/number-of-islands/"""def solution(self, grid: List[List[str]]) -> int:res = 0m, n = len(grid), len(grid[0])for i in range(m):for j in range(n):if grid[i][j] == '1':res += 1self.dfs_matrix(grid, i, j)return resdef dfs_matrix(self, grid, i, j):m, n = len(grid), len(grid[0])# 跳出递归条件if i < 0 or i >= m or j < 0 or j >= n:returnif grid[i][j] == '0':returngrid[i][j] = '0'self.dfs_matrix(grid, i - 1, j) # 上self.dfs_matrix(grid, i + 1, j) # 下self.dfs_matrix(grid, i, j - 1) # 左self.dfs_matrix(grid, i, j + 1) # 右