Number of Islands

https://leetcode.com/explore/challenge/card/30-day-leetcoding-challenge/530/week-3/3302/

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

Last updated

Was this helpful?