200. 岛屿数量

2019-08-10  本文已影响0人  HamletSunS

我的思路:

借鉴:

class Solution {
public:
    int numIslands(vector<vector<char>>& grid) {
        ret=0;        
        row=grid.size();
        if(row==0)
            return ret;
        col=grid[0].size();
        if(col==0)
            return 0;
        used=vector<vector<bool>>(row,vector<bool>(col,false));
        for(int i=0;i<row;i++)
            for(int j=0;j<col;j++){
                if(used[i][j]==false && grid[i][j]=='1'){
                    ret++;
                    getNum(grid,used,i,j);
                }
            }
        
        return ret;
        
    }
private:
    vector<vector<bool>> used;
    int ret,row,col;
    void getNum(vector<vector<char>> &grid,vector<vector<bool>> &used,int x,int y){
        if(x<0||x>=row||y<0||y>=col||grid[x][y]=='0')
            return ;
        if(grid[x][y]== '1' && used[x][y]==false){
            used[x][y]=true;
            getNum(grid,used,x+1,y);
            getNum(grid,used,x-1,y);
            getNum(grid,used,x,y+1);
            getNum(grid,used,x,y-1);

        }
    };
};
上一篇 下一篇

猜你喜欢

热点阅读