码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-03-28 01:09:11      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:并且   cto   and   false   mis   etc   网格   public   假设   

给定一个由 ‘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)

标签:并且   cto   and   false   mis   etc   网格   public   假设   

原文地址:https://www.cnblogs.com/wz-archer/p/12585261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!