Java, DFS, Recursion [Please upvote, if you like the solution]
  1. Mark the index as 0 <=> visited.
  2. Recursively check if you can reach the entire graph.
public int numIslands(char[][] grid) {
        int islands = 0;
        for(int i = 0; i< grid.length;i++){
            for(int j = 0; j< grid[0].length;j++){
                if(grid[i][j] == '1'){
                    islands++;
                    recur(grid, i, j);
                }
            }
        }
        return islands;
    }
    
    public void recur(char[][] grid, int i, int j){
        if(i < 0 || i >= grid.length || j < 0 || j >= grid[0].length) return;
        else{
             if(grid[i][j] == '0') return;
        
                grid[i][j] = '0';
                recur(grid, i+1, j);
                recur(grid, i-1, j);
                recur(grid, i, j+1);
                recur(grid, i, j-1);
        }
       
    }
Comments (0)