Source: Count Sub Islands - LeetCode
题解
class Solution:
def countSubIslands(self, grid1: List[List[int]], grid2: List[List[int]]) -> int:
m=len(grid1);n=len(grid1[0])
def dfs(x, y):
if (0 <= x < m and 0 <= y < n) and (grid2[x][y] == 1):
grid2[x][y] = -1
_d=dfs(x + 1, y)
_u=dfs(x - 1, y)
_l=dfs(x, y - 1)
_r=dfs(x, y + 1)
return (_d and _u and _l and _r and grid1[x][y]==1)
return True
c=0
for i in range(m):
for j in range(n):
if grid2[i][j]==1:
if dfs(i,j):c+=1
return c