200. 岛屿数量
200. 岛屿数量
题目链接:200. 岛屿数量
代码如下:
class Solution {
private:int dirX[4]={0,0,-1,1};//上下左右int dirY[4]={-1,1,0,0};//上下左右//深度优先遍历void dfs(vector<vector<char>>& grid,vector<vector<bool>>& visited,int x,int y){visited[x][y]=true;for(int i=0;i<4;i++){int nextX=x+dirX[i];int nextY=y+dirY[i];if(nextX<0||nextX>=grid.size()||nextY<0||nextY>=grid[0].size())continue;if(!visited[nextX][nextY]&&grid[nextX][nextY]=='1')dfs(grid,visited,nextX,nextY);}}public:int numIslands(vector<vector<char>>& grid) {int count=0;vector<vector<bool>> visited(grid.size(),vector<bool>(grid[0].size(),false));for(int i=0;i<grid.size();i++){for(int j=0;j<grid[i].size();j++){if(!visited[i][j]&&grid[i][j]=='1'){count++;dfs(grid,visited,i,j); }}}return count;}
};