Number of Islands LeetCode solution in Python
1# Runtime: 353 ms (Top 84.15%) | Memory: 28.7 MB (Top 5.01%)23seen = set()456def dfs(i, j, m, n, grid):7global seen8if i < 0 or i >= m or j < 0 or j >= n:9return10if (i, j) in seen:11return12seen.add((i, j))13if grid[i][j] == "1":14dfs(i, j + 1, m, n, grid)15dfs(i, j - 1, m, n, grid)16dfs(i + 1, j, m, n, grid)17dfs(i - 1, j, m, n, grid)181920class Solution:21def numIslands(self, grid: List[List[str]]) -> int:22global seen23m = len(grid) # no of rows24n = len(grid[0]) # no of columns25count = 026for i in range(m):27for j in range(n):28if (i, j) not in seen and grid[i][j] == "1":29dfs(i, j, m, n, grid)30count += 131seen.clear()32return count