# 200. Number of Islands ###### tags: `DFS`,`leetcode study group`, `2020` ```python= class Solution: def numIslands(self, grid: List[List[str]]) -> int: res = 0 for row in range(len(grid)): for col in range(len(grid[0])): if grid[row][col] == "1": self.dfs(grid, row, col) res += 1 return res def dfs(self, grid, i, j): grid[i][j] = "0" dirs = [[1, 0], [-1, 0], [0, 1], [0, -1]] # neighborhood for dir in dirs: nr, nc = i + dir[0], j +dir[1] if nr >= 0 and nc >= 0 and nr < len(grid) and nc <len(grid[0]): if grid[nr][nc] == "1": self.dfs(grid, nr, nc) ``` #### Time Complexity O(M x N), M is the number of rows and N is the number of columns #### Space Complexity O(M x N) in case that the grid map is filled with lands where DFS goes by M x N deep.