统计子岛屿
关于岛屿的相似题目:
- 岛屿数量 – 二维矩阵的dfs算法
- 封闭岛屿数量 – 二维矩阵的dfs算法
- 统计封闭岛屿的数目
- 统计子岛屿
- 不同岛屿的数量
class CountSubIslands:"""floodFill 算法1254. 统计子岛屿https://leetcode.cn/problems/count-sub-islands/"""def solution(self, grid1: List[List[str]], grid2: List[List[str]]) -> int:m, n = len(grid1), len(grid1[0])for i in range(m):for j in range(n):# 这个岛屿肯定不是⼦岛,淹掉if grid1[i][j] == 0 and grid2[i][j] == 1:self.dfs_matrix(grid2, i, j)# 现在 grid2 中剩下的岛屿都是⼦岛,计算岛屿数量res = 0for i in range(m):for j in range(n):if grid2[i][j] == 1:res += 1self.dfs_matrix(grid2, 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] = 0self.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) # 右