200. 岛屿数量

 

 

 很基本的减枝吧

 

查看代码
class Solution {
public:
    int numIslands(vector<vector<char>>& grid) {
        vector<vector<int>>flag(grid.size(),vector<int>(grid[0].size(),0));
        int number=0;
        for(int i=0;i<grid.size();i++)
        {
            for(int j=0;j<grid[0].size();j++){
                if(flag[i][j]==0&&grid[i][j]=='1'){
                    go(i,j,grid,flag);
                    number++;
                }
                else
                    continue;
            }
        }
        return number;
    }
    void go(int i, int j,vector<vector<char>>& grid,vector<vector<int>>& flag){
        if(i<0||i>grid.size()-1||j>grid[0].size()-1||j<0){
            return;
        }
        if(grid[i][j]=='1'&&flag[i][j]==0){
            flag[i][j] = 1;
            go(i+1,j,grid,flag);
            go(i,j-1,grid,flag);
            go(i-1,j,grid,flag);
            go(i,j+1,grid,flag);
        }
    }
};
posted @ 2021-12-16 20:29  jozon  阅读(24)  评论(0)    收藏  举报