class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
'''
遇到1的数,则从当前位置开始直接往上、下、左、右去遍历,
以当前1向四周遍历到的1是同一个岛屿
此时,将遍历的1转化为0,代表已经遍历过了
'''
re=0
l=len(grid)
c=len(grid[0])
def pre(grid,i,j):
#超出边界
if i<0 or i>=l or j<0 or j>=c:
return
#走到水,即此方向走到岛屿终点了
elif grid[i][j]=="0":
return
elif grid[i][j]=='1':
#标记已走过的位置
grid[i][j]="0"
#以当前位置开始四周遍历
#向上
pre(grid,i-1,j)
#向下:
pre(grid,i+1,j)
#向左
pre(grid,i,j-1)
#向右
pre(grid,i,j+1)
for i in range(l):
for j in range(c):
if grid[i][j]=="1":
#以此1组成的岛屿
pre(grid,i,j)
re+=1
return re
标签:pre,200,遍历,return,岛屿,re,grid,数量
From: https://blog.csdn.net/huanxianxianshi/article/details/144634881