用深搜把每一个碰到的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