岛屿的数量

Input:
11000
11000
00100
00011

Output: 3
public int numIslands(char[][] grid){
        if(grid==null || grid.length==0){
            return 0;
        }
        int islandNum = 0;
        for(int i=0;i<grid.length;i++){
            for(int j=0;j<grid[0].length;j++){
                if(grid[i][j]!='0'){
                    dfs(grid, i, j);
                    islandNum++;
                }
            }
        }
        return islandNum;
    }
    
    private void dfs(char[][] grid,int i,int j){
        if(i<0||i>=grid.length||j<0||j>grid[0].length||grid[i][j]=='0'){
            return;
        }
        grid[i][j] = '0';
        int[][] direction = {{0,1},{0,-1},{1,0},{-1,0}};
        for(int[] d :direction){
            dfs(grid, i+d[0], j+d[1]);
        }
    }
原文地址:https://www.cnblogs.com/helloworldmybokeyuan/p/13446242.html