美文网首页程序员
LeetCode:岛屿数量

LeetCode:岛屿数量

作者: 李海游 | 来源:发表于2020-04-20 14:39 被阅读0次

200. 岛屿数量

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

思路:当遇到 '1' 时,岛屿数量++,并对 '1' 的位置进行感染,把与该 '1' 位置直接或间接连通在一起的 '1' 全部标记为 '2'。然后继续遍历该二维网格。
class Solution {
public:
    int numIslands(vector<vector<char>>& grid) {
        if(grid.size()==0 || grid[0].size()==0)
            return 0;
        int row=grid.size(),col=grid[0].size();
        int res=0;
        for(int i=0;i<row;++i)
        {
            for(int j=0;j<col;++j)
            {
                if(grid[i][j]=='1')  //遇到 '1' 时,
                {
                    ++res;  //岛屿数量++
                    infect(grid,i,j,row,col); //对 '1' 的位置进行感染
                }
            }
        }
        return res;
    }

    void infect(vector<vector<char>>& grid,int i, int j,const int &row, const int&col)
    {
        if(i<0 || i>=row || j<0 || j>=col || grid[i][j] != '1') //越界或不为 '1' ,返回
        {
            return;
        }
        grid[i][j]='2';  //把与该 '1' 位置直接或间接连通在一起的 '1' 全部标记为 '2'
        infect(grid,i-1,j,row,col);
        infect(grid,i+1,j,row,col);
        infect(grid,i,j-1,row,col);
        infect(grid,i,j+1,row,col);
    }
};

相关文章

  • LeetCode-200-岛屿数量

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

  • LeetCode:岛屿数量

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

  • Leetcode 岛屿数量

    题目描述 leecode第200题:岛屿数量[https://leetcode-cn.com/problems/n...

  • 【LeetCode】岛屿类问题的通用解法--DFS遍历框架

    在 LeetCode 中,「岛屿问题」是一个系列系列问题,比如: 岛屿数量 (Easy)岛屿的周长 (Easy)岛...

  • leetcode-岛屿数量

    这道题巧妙用了深度遍历和广度遍历 深度遍历比较好理解,找到一个陆地,数值为“1”,然后深度遍历,将其周围的陆地都包...

  • Leetcode 200 岛屿数量

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

  • 200. 岛屿数量

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

  • 【leetcode-dfs】岛屿数量

    【leetcode-dfs】岛屿数量 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。...

  • LeetCode 200. 岛屿数量

    200. 岛屿数量 题目来源:https://leetcode-cn.com/problems/number-of...

  • LeetCode:200. 岛屿数量

    问题链接 200. 岛屿数量[https://leetcode.cn/problems/number-of-isl...

网友评论

    本文标题:LeetCode:岛屿数量

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