Simple C++ solution


  • 0
    G
        int numIslands(vector<vector<char>>& grid) {
            int cnt = 0;
            for (int i = 0; i < grid.size(); i++) {
                for (int j = 0; j < grid[0].size(); j++) {
                    if (grid[i][j] == '1') {
                        cnt++;
                        dfs(grid, i, j);
                    }
                }
            }
            return cnt;
        }
        void dfs(vector<vector<char>>& grid, int r, int c) {
            if (r < 0 || r == grid.size() || c < 0 || c == grid[0].size() || grid[r][c] == '0') return;
            grid[r][c] = '0';
            dfs(grid, r - 1, c);
            dfs(grid, r + 1, c);
            dfs(grid, r, c - 1);
            dfs(grid, r, c + 1);
        }
    

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.