题解 | #标准四向dfs# #岛屿数量#
岛屿数量
https://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 判断岛屿数量 # @param grid char字符型二维数组 # @return int整型 # class Solution: def solve(self , grid ): # write code here cnt = 0 n1 = len(grid) n2 = len(grid[0]) for i in range(0, n1): for j in range(0, n2): if grid[i][j] == '1': cnt += 1 self.dfs(i, j, grid) print ("Total cnt: ", cnt) return cnt def dfs(self, i, j, grid): n1 = len(grid) n2 = len(grid[0]) grid[i][j] = '0' #dfs 4 directions if i - 1 >= 0 and grid[i - 1][j] == '1': self.dfs(i - 1, j, grid) if i + 1 < n1 and grid[i + 1][j] == '1': self.dfs(i + 1, j, grid) if j - 1 >= 0 and grid[i][j - 1] == '1': self.dfs(i, j - 1, grid) if j + 1 < n2 and grid[i][j + 1] == '1': self.dfs(i, j + 1, grid) return