美文网首页LeetCode
200. 岛屿的个数

200. 岛屿的个数

作者: 凌霄文强 | 来源:发表于2019-03-13 21:15 被阅读0次

题目描述

给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。

示例 1:

输入:
11110
11010
11000
00000

输出: 1
示例 2:

输入:
11000
11000
00100
00011

输出: 3

知识点

图的遍历


Qiang的思路

class Solution:
    def dfs(self, grid: List[List[str]], i: int, j: int) -> bool:
        if i<0 or j<0 or i>len(grid[:])-1 or j>len(grid[0])-1 or grid[i][j]!='1':
            return False
        grid[i][j]='-1'
        self.dfs(grid, i-1, j)
        self.dfs(grid, i+1, j)
        self.dfs(grid, i, j-1)
        self.dfs(grid, i, j+1)
        return True
        
    
    def numIslands(self, grid: List[List[str]]) -> int:
        num=0
        for i in range(len(grid[:])):
            for j in range(len(grid[0])):
                num+=1 if self.dfs(grid, i, j)
        return num

作者原创,如需转载及其他问题请邮箱联系:lwqiang_chn@163.com
个人网站:https://www.myqiang.top

相关文章

网友评论

    本文标题:200. 岛屿的个数

    本文链接:https://www.haomeiwen.com/subject/nzdxmqtx.html