Untitled

 avatar
unknown
plain_text
2 years ago
862 B
4
Indexable
from collections import deque
class Solution:
    def numIslands(self, grid: List[List[str]]) -> int:
        num_rows = len(grid)
        num_cols = len(grid[0])
        count=0
        moves=[[-1,0],[1,0],[0,1],[0,-1]]

        def bfs(row,col):
            queue=deque([(row,col)])
            grid[row][col]='0'

            while queue:
                x,y=queue.popleft()
                for dx,dy in moves:
                    tempX=x+dx
                    tempY=y+dy
                    if 0<=tempX<num_rows and 0<=tempY<num_cols and grid[tempX][tempY]=='1':
                        queue.append((tempX,tempY))
                        grid[tempX][tempY]='0'
        for i in range(num_rows):
            for j in range(num_cols):
                if grid[i][j]=='1':
                    bfs(i,j)
                    count+=1
        return count
        
Editor is loading...