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);
}
}
};

浙公网安备 33010602011771号