# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 判断岛屿数量 # @param grid char字符型二维数组 # @return int整型 # from collections import deque class Solution: def solve(self , grid: List[List[str]]) -> int: # write code here n = len(grid) m = len(grid[0]) visited = set() count = 0 directions = [(1,0),(-1,0),(0,1),(0,-1)] for i in range(n): for j in range(m): if grid[i][j] == "1" and (i,j) not in visited: count += 1 visited.add((i,j)) queue = deque() queue.append((i,j)) while queue: ni,nj = queue.popleft() for di,dj in directions: newi,newj = ni + di,nj +dj if 0 <= newi < n and 0 <= newj < m: if grid[newi][newj] == "1" and (newi,newj) not in visited: visited.add((newi,newj)) queue.append((newi,newj)) return count