DEV Community

Tanuja V
Tanuja V

Posted on

Number of Closed Islands | LeetCode

class Solution {
    public int closedIsland(int[][] grid) {

        int row = grid.length;

        int col = grid[0].length;

        int countIsland = 0;


        for(int i=0; i<row; i++){
            for(int j=0; j<col; j++){
                if(grid[i][j]==0 && dfs(grid, i, j)){
                    countIsland++;
                }
            }
        }

        return countIsland;
    }


    boolean dfs(int grid[][], int i, int j){
        if(i<0 || j<0 || i>=grid.length || j>=grid[0].length)
            return false;

        if(grid[i][j]==1 || grid[i][j]==2)
            return true;

        grid[i][j] = 2;

        boolean up = dfs(grid, i+1, j);
        boolean down = dfs(grid, i-1, j);
        boolean left = dfs(grid, i, j+1);
        boolean right = dfs(grid, i, j-1);

        return up && down && left && right;
    }
}
Enter fullscreen mode Exit fullscreen mode

Thanks for reading :)
Feel free to comment and like the post if you found it helpful
Follow for more ๐Ÿค && Happy Coding ๐Ÿš€

If you enjoy my content, support me by following me on my other socials:
https://linktr.ee/tanujav7

Top comments (0)