题解 | #岛屿数量#
岛屿数量
https://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e
迷宫问题,岛屿问题这类的解题思路都是差不多的,dfs/bfs遍历后把所找的路标记。这道题岛屿找到后变为0。
广度优先可以直接用数组表示。quene.put相当于 [].append ,quene.get相当于[].pop(0) 。
class Solution: def solve(self , grid: List[List[str]]) -> int: # write code here quene=[] nums=0 n=len(grid) m=len(grid[0]) for i in range(n): for j in range(m): if grid[i][j]=="1": nums+=1 grid[i][j]="0" quene.append([i,j]) while not len(quene)==0: x,y=quene.pop(0) if x-1>=0 and grid[x-1][y]=="1": grid[x-1][y]="0" quene.append([x-1,y]) if x+1<len(grid) and grid[x+1][y]=="1": grid[x+1][y]="0" quene.append([x+1,y]) if y-1>=0 and grid[x][y-1]=="1": grid[x][y-1]="0" quene.append([x,y-1]) if y+1<len(grid[0]) and grid[x][y+1]=="1": grid[x][y+1]="0" quene.append([x,y+1]) return nums