美文网首页
11 - Medium - 岛屿的个数

11 - Medium - 岛屿的个数

作者: 1f872d1e3817 | 来源:发表于2018-06-28 11:51 被阅读0次

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

示例 1:

输入:
11110
11010
11000
00000

输出: 1
示例 2:

输入:
11000
11000
00100
00011

输出: 3

循环2维数组,找到其值为1的元素,count++,

然后递归改变其上下左右为1的元素值为0,

class Solution:
    # @param {boolean[][]} grid a boolean 2D matrix
    # @return {int} an integer
    def numIslands(self, grid):
        # Write your code here
        if grid is None: return None
        if grid == []: return 0
        # 当数组不为空时,计算行数和列数
        self.n = len(grid)
        self.m = len(grid[0])
        x = 0
        for i in range(self.n):
            for j in range(self.m):
                if grid[i][j] == '1':
                    x += 1
                    grid = self.change(grid,i,j)
        return x
     
    def change(self,grid,i,j):
        grid[i][j] = '0'
        if i > 0 and grid[i-1][j] == '1':
            # 置当前点上边的点为0
            grid = self.change(grid,i-1,j)
        if i < self.n-1 and grid[i+1][j] == '1':
            # 置当前点下边的点为0
            grid = self.change(grid,i+1,j)
             
        if j < self.m-1 and grid[i][j+1] == '1':
            # 置当前点右方的点为0
            grid = self.change(grid,i,j+1)
        if j > 0 and grid[i][j-1] == '1':
            # 置当前点左方的点为0
            grid = self.change(grid,i,j-1)
        return grid

相关文章

  • 11 - Medium - 岛屿的个数

    给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或...

  • 岛屿个数

    题目给定一个m行n列的二维地图,初始化每个单元都是水,操作addLand把单元格(row,col)变成陆地。岛屿定...

  • 岛屿的个数

    给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或...

  • 岛屿的个数

    给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或...

  • 岛屿的个数

    这题考察广度优先遍历和深度优先遍历,利用递归的方式做还算比较简单,但是输出的格式有待斟酌! 几个岛(滴滴) 题目:...

  • 岛屿的个数

    题目 思路:搜索到陆地(1)以后向前后以及下方遍历直至搜到海(0),将搜索到的陆地全部置为0并且将岛屿数量+1。

  • LeetCode:岛屿的个数

    岛屿的个数 题目叙述: 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围...

  • 200. 岛屿的个数

    题目描述 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过...

  • 433. 岛屿的个数

    给一个01矩阵,求不同的岛屿的个数。0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左...

  • LeetCode:岛屿的个数(Swift)

    最近对算法突然来了兴趣,奈何大学学的数据结构算法已经丢完了,只有自己一点点的捡回来啰。言归正传,来看看LeetCo...

网友评论

      本文标题:11 - Medium - 岛屿的个数

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