leetcode 200. 岛屿数量(dfs||bfs)

Posted wz-archer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 200. 岛屿数量(dfs||bfs)相关的知识,希望对你有一定的参考价值。

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

示例 1:

输入:
11110
11010
11000
00000

输出: 1
示例 2:

输入:
11000
11000
00100
00011

输出: 3

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-islands

class Solution {
public:
    int n,m;
    bool f(int x,int y,vector<vector<char>>& grid){
        if(x>=0&&x<n&&y>=0&&y<m&&grid[x][y]==1)return true;
        return false;
    }
    void dfs(int x,int y,vector<vector<char>>& grid){
        if(f(x,y,grid)){
            grid[x][y]=2;
            dfs(x+1,y,grid);
            dfs(x-1,y,grid);
            dfs(x,y+1,grid);
            dfs(x,y-1,grid);
        }
    }
    int numIslands(vector<vector<char>>& grid) {
        n=grid.size();
        if(n==0)return 0;
        m=grid[0].size();
        int num=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(grid[i][j]==1){
                    dfs(i,j,grid);
                    num++;
                }
            }
        }
        return num;
    }
};

 

以上是关于leetcode 200. 岛屿数量(dfs||bfs)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode No.200 岛屿数量(DFS)

leetcode 200. 岛屿数量(dfs||bfs)

Leetcode 200.岛屿的数量 - DFSBFS

LeetCode树系列——200题岛屿数量

leetcode-200-岛屿的个数(dfs找所有的连通分量)

LeetCode Java刷题笔记—200. 岛屿数量