题解 | #岛屿数量#

岛屿数量

http://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e

思路:dfs,找到一个1,把它及其周围的1全变为0.之后,总共找到多少个1,就是多少个岛屿。

public int solve (char[][] grid) {
        // write code here
        int island=0;
        for(int i=0;i<grid.length;i++){
            for(int j=0;j<grid[0].length;j++){
                if(grid[i][j]=='1'){
                    island++;
                    dfs(i,j,grid);
                }
            }
        }
        return island;
    }
    public void dfs(int i,int j,char[][] grid){
        if(i<0 || j<0 ||i>=grid.length || j>=grid[0].length || grid[i][j]=='0'){
            return;
        }
        grid[i][j]='0';
        dfs(i+1,j,grid);
        dfs(i,j+1,grid);
        dfs(i-1,j,grid);
        dfs(i,j-1,grid);
    }
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务