[LeetCode] 200. Number of Islands
import collections
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
visit = [ [False] *len(grid[0]) for i in range(len(grid))]
cnt = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if visit[i][j] == False and grid[i][j]=="1":
self.bfs(i,j,grid, visit, cnt)
cnt = cnt+1
return cnt
def bfs(self,i,j, grid,visit, cnt):
direction = [(-1,0), (1,0), (0,1), (0,-1)]
visit[i][j] == True
queue = collections.deque()
queue.append((i,j))
while queue:
x,y = queue.popleft()
for dx,dy in direction:
nx, ny = x+dx, y+dy
if nx<0 or ny <0 or nx>=len(grid) or ny>=len(grid[i]):
continue
if visit[nx][ny] == False and grid[nx][ny] == "1":
visit[nx][ny] = True
queue.append((nx,ny))