# Number of Islands https://leetcode.com/problems/number-of-islands/ ## Solution 1: [[dfs|DFS]] ```python if not grid: return 0 m, n = len(grid), len(grid[0]) def dfs(row, col) -> None: nonlocal grid, m, n if not ( 0 <= row < m and 0 <= col < n and grid[row][col] == '1' ): return grid[row][col] = '0' dfs(row - 1, col) dfs(row + 1, col) dfs(row, col - 1) dfs(row, col + 1) num_islands = 0 for row in range(m): for col in range(n): if grid[row][col] == "1": dfs(row, col) num_islands += 1 return num_islands ``` ## Solution 2: [[bfs|BFS]] ```python def bfs(row, col) -> None: nonlocal grid, m, n if not ( 0 <= row < m and 0 <= col < n and grid[row][col] == '1' ): return grid[row][col] = '0' dfs(row - 1, col) dfs(row + 1, col) dfs(row, col - 1) dfs(row, col + 1) ```