class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
n=len(grid)
m=len(grid[0])
def bfs(x,y):
if grid[x][y]=='1':
grid[x][y]='0'
for dx,dy in [(1,0),(0,1),(-1,0),(0,-1)]:
x1=dx+x
y1=dy+y
if 0<=x1<n and 0<=y1<m:
bfs(x1,y1)
else:
return #结束此次步骤
sum=0
for i in range(n):
for j in range(m):
if grid[i][j]=='1':
bfs(i,j)
sum+=1
else:
continue #小循环继续
return sum
【DFS题型七/连通块】岛屿数量
于 2022-09-14 19:43:08 首次发布
这是一个关于算法实现的博客,主要介绍了如何利用宽度优先搜索(BFS)方法来计算给定二维网格中岛屿的数量。`Solution`类包含一个`numIslands`函数,该函数通过遍历网格并进行BFS操作,将遇到的'1'(表示陆地)标记为'0'(表示水),同时计数岛屿。整个过程确保了不会重复计数相邻的陆地,最终返回岛屿的总数。
摘要由CSDN通过智能技术生成