题解 | #标准四向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 
        

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务