链接:
https://leetcode-cn.com/problems/number-of-islands/
描述:
示例:
代码:
int nextp[4][2] = {{0,1},{1,0},{0,-1},{-1,0}};
class Solution {
public:
void DFS(vector<vector<char>>& grid,int row,int col,vector<vector<int>>& book,int x,int y)
{
book[x][y] = 1;
for(int i = 0;i<4;++i)
{
int newx = x+nextp[i][0];
int newy = y+nextp[i][1];
if(newx >= row || newx<0 || newy>=col || newy<0)
continue;
if(grid[newx][newy] == '1' && book[newx][newy] == 0)
DFS(grid,row,col,book,newx,newy);
}
}
int numIslands(vector<vector<char>>& grid) {
if(grid.empty()) return 0;
int ret = 0;
int row = grid.size();
int col = grid[0].size();
vector<vector<int>> book;
book.resize(row);
for(int i = 0;i<row;++i)
book[i].resize(col,0);
for(int i = 0;i<row;++i)
{
for(int j = 0;j<col;++j)
{
if(grid[i][j] == '1' && book[i][j] == 0)
{
ret++;
DFS(grid,row,col,book,i,j);
}
}
}
return ret;
}
};