class Solution { public: int res = 0; void find(vector<vector<char> >& grid, int i, int j, int m, int n) { int dx[4] = {0, 1, 0, -1}, dy[4] = {-1, 0, 1, 0}; grid[i][j] = '0'; for(int k = 0; k < 4; k ++) { int x = i + dx[k], y = j + dy[k]; if(x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1') { find(grid, x, y, m ,n); } } } int solve(vector<vector<char> >& grid) { int m = grid.size(), n = grid[0].size(); for(int i = 0; i < m; i ++) { for(int j = 0; j < n ; j ++) { if(grid[i][j] == '1') { res ++; find(grid, i , j, m, n); } } } return res; } };