美文网首页
200.岛屿数量

200.岛屿数量

作者: 无力韬韬 | 来源:发表于2020-12-02 22:04 被阅读0次

给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例 1:

输入:

[

['1','1','1','1','0'],

['1','1','0','1','0'],

['1','1','0','0','0'],

['0','0','0','0','0']

]

输出: 1

示例 2:

输入:

[

['1','1','0','0','0'],

['1','1','0','0','0'],

['0','0','1','0','0'],

['0','0','0','1','1']

]

输出: 3

解释: 每座岛屿只能由水平和/或竖直方向上相邻的陆地连接而成。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/number-of-islands

只要找到值为1的坐标用来计数的变量就+1,并将所有与其相连的1值都置为2,找到的所有的1的数量就是岛屿数量。

class Solution {

    public int numIslands(char[][] grid) {

        int row=grid.length;

        if(row==0)

        {

            return 0;

        }

        int col=grid[0].length;

        int res=0;

        for(int i=0;i<row;i++)

        {

            for(int j=0;j<col;j++)

            {

                if(grid[i][j]=='1')

                {

                    land(grid,i,j,row,col);

                        res++;

                }

            }

        }

        return res;

    }

   void land(char[][] grid,int i,int j,int row,int col)

   {

       if(i<0||i>row-1||j<0||j>col-1||grid[i][j]!='1')

       {

           return ;

       }

       grid[i][j]='2';

       land(grid,i-1,j,row,col);

       land(grid,i+1,j,row,col);

       land(grid,i,j-1,row,col);

       land(grid,i,j+1,row,col);

   }

}

相关文章

  • 200. 岛屿数量

    200. 岛屿数量

  • LeetCode-200-岛屿数量

    LeetCode-200-岛屿数量 200. 岛屿数量[https://leetcode-cn.com/probl...

  • 200. 岛屿数量

    我的思路: 采用深度优先搜索,把附近为1的全部进行标记。 对每一个格子遍历进行遍历,若为1且没被标记,则ret++...

  • 200. 岛屿数量

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

  • 200. 岛屿数量

    只能是水平或竖直来进行切割小岛 在遍历整个矩阵时,如果遇到是1,向东南西北四个方向进行扩散: (1)观察是否越界(...

  • 200. 岛屿数量

    给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座...

  • 200.岛屿数量

    源码如下 四连通的经典题。 去检查一个1周围四个方向是否有没走过的1。同时遍历的1,标记一个数字,标记完后标记数字自加。

  • 200.岛屿数量

    给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿...

  • 200. 岛屿数量

    200. 岛屿数量[https://leetcode-cn.com/problems/number-of-isla...

  • 200. 岛屿数量

    解法 图类联通性问题,可以用深度优先遍历,往4个方向进行遍历,直到越界,或者找到的元素不是1,或者节点已经访问过,...

网友评论

      本文标题:200.岛屿数量

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