python-leetcode-岛屿数量
200. 岛屿数量 - 力扣(LeetCode)
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
if not grid or not grid[0]:
return 0
rows, cols = len(grid), len(grid[0])
count = 0
def dfs(r, c):
if r < 0 or c < 0 or r >= rows or c >= cols or grid[r][c] == '0':
return
grid[r][c] = '0' # 将访问过的陆地标记为水
dfs(r + 1, c) # 下
dfs(r - 1, c) # 上
dfs(r, c + 1) # 右
dfs(r, c - 1) # 左
for r in range(rows):
for c in range(cols):
if grid[r][c] == '1': # 发现新岛屿
count += 1
dfs(r, c) # 淹没整座岛屿
return count