1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public: int m,n; void dfs(vector<vector<char>>& grid,int x,int y){ if(x<0||x>=m||y<0||y>=n||grid[x][y]=='0') return; grid[x][y] = '0'; dfs(grid,x+1,y); dfs(grid,x-1,y); dfs(grid,x,y+1); dfs(grid,x,y-1); } int numIslands(vector<vector<char>>& grid) { m = grid.size(); n = grid[0].size(); int count = 0; for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(grid[i][j] == '1'){ count++; dfs(grid,i,j); } } } return count; } };
|