intnumIslands(vector<vector<char>>& grid){ int row = grid.size(); int col = grid[0].size(); vector<vector<bool>> visited(row, vector<bool>(col, false)); int dirx[4] = {-1, 0, 1, 0}; int diry[4] = {0, 1, 0, -1}; int ans = 0; auto dfs = [&](thisauto&& dfs, int i, int j) -> void { visited[i][j] = true; for (int k = 0; k < 4; k++) { int ni = i + dirx[k]; int nj = j + diry[k]; if (ni >= 0 && ni < row && nj >= 0 && nj < col && visited[ni][nj] == false && grid[ni][nj] == '1') dfs(ni, nj); } };
for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if (visited[i][j] == false && grid[i][j] == '1') { dfs(i, j); ans += 1; } } }