# Leetcode 200. Number of Islands
## 題解
### DFS
走過的標記為 2,對沒走過並且為 1 的島嶼進行 DFS
```python=
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
directions = [
[0,1],
[0,-1],
[1,0],
[-1,0]
]
m,n = len(grid),len(grid[0])
output = 0
def dfs(x,y):
for direction in directions:
new_x = x + direction[0]
new_y = y + direction[1]
if new_x < n and new_x >= 0 and new_y >= 0 and new_y < m and grid[new_y][new_x] == "1":
grid[new_y][new_x] = "2"
dfs(new_x,new_y)
for y in range(m):
for x in range(n):
if grid[y][x] == "1":
output += 1
grid[y][x] = "2"
dfs(x,y)
return output
```