Number of Islands (Leetcode 200)

Problem Link: https://leetcode.com/problems/number-of-islands/

class Solution:
    def numIslands(self, grid: List[List[str]]) -> int:
        
        def dfs(grid,i,j,visited,m,n):
            
            if(i<0 or j<0 or i==m or j==n or visited[i][j]==True or grid[i][j]=="0"):
                return
            
            visited[i][j]=True
            
            dfs(grid,i+1,j,visited,m,n)
            dfs(grid,i-1,j,visited,m,n)
            dfs(grid,i,j+1,visited,m,n)
            dfs(grid,i,j-1,visited,m,n)
        
         
        m=len(grid)
        n=len(grid[0])
        visited=[[False for i in range(n)] for j in range(m)]
        count=0
        for i in range(m):
            for j in range(n):
                if(grid[i][j]=="1"):
                    if(visited[i][j]==False):
                        dfs(grid,i,j,visited,m,n)
                        count=count+1
        
        return count

Last updated