题解 | #岛屿数量#

岛屿数量

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

#岛屿数量#解题思路:按行遍历矩阵,遇到‘1’则使用广度优先移除已经参与计数的岛屿。使用递归删除左右上下相邻的grid[i][j]=='1'的格子即可。此方法时间复杂度o(n^2)。

public class Solution {
    public int solve (char[][] grid) {
        int count = 0;
        for(int i=0;i<grid.length;++i){
            for(int j =0;j<grid[0].length;++j){
                if(grid[i][j]=='1'){
                    count++;
                    removeIland(i,j,grid);
                }
            }
        }
        return count;
    }
    public void removeIland(int i,int j,char[][] grid){
        if(i<0||j<0||i>=grid.length||j>=grid[0].length)return;
        if(grid[i][j]=='1') {
            grid[i][j] = '0';
            removeIland(i,j+1,grid);
            removeIland(i+1,j,grid);
            removeIland(i-1,j,grid);
            removeIland(i,j-1,grid);
        }
    }
}
全部评论

相关推荐

10-10 01:10
已编辑
深圳大学 测试开发
面了100年面试不知...:六月到九月,四个项目一个实习,是魔丸吗
投了多少份简历才上岸
点赞 评论 收藏
分享
gelmanspar...:奖学金删掉,自我评价删掉,简历压缩一下,写一页
如果再来一次,你还会学机...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务