Number of Islands
阿新 • • 發佈:2018-12-12
class Solution { public: void explore(vector<vector<char>>& grid, int i, int j){ int m = grid.size(); int n = grid[0].size(); if(i-1>=0 && grid[i-1][j]=='1'){ grid[i-1][j]='-'; explore(grid, i-1, j); } if(j-1>=0 && grid[i][j-1]=='1'){ grid[i][j-1]='-'; explore(grid, i, j-1); } if(i+1<m && grid[i+1][j]=='1'){ grid[i+1][j]='-'; explore(grid, i+1, j); } if(j+1<n && grid[i][j+1]=='1'){ grid[i][j+1]='-'; explore(grid, i, j+1); } } int numIslands(vector<vector<char>>& grid) { int res = 0; for(int i=0;i<grid.size();i++){ for(int j=0;j<grid[0].size();j++){ if(grid[i][j]=='1'){ res++; grid[i][j]='-'; explore(grid, i, j); } } } return res; } };