链接:200. 岛屿数量 - 力扣(LeetCode)

用深搜把每一个碰到的1都变成0,这样就处理完了一个发现的岛屿

 1 class Solution(object):
 2     def numIslands(self, grid):
 3         """
 4         :type grid: List[List[str]]
 5         :rtype: int
 6         """
 7         m = len(grid)
 8         n = len(grid[0])
 9         def dfs(i, j):
10             if i < 0 or i >= m or j < 0 or j >= n or grid[i][j] == '0':
11                 return
12             else:
13                 grid[i][j] = '0'
14                 dfs(i-1, j)
15                 dfs(i+1, j)
16                 dfs(i, j-1)
17                 dfs(i, j+1)
18         i = j = res = 0
19         while i < m:
20             j = 0
21             while j < n:
22                 if grid[i][j] == '1':
23                     res += 1
24                     dfs(i,j)
25                 j += 1
26             i += 1
27         return res
28