题解 | #岛屿数量#

岛屿数量

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);
        }
    }
}
全部评论

相关推荐

04-08 16:35
门头沟学院 Java
站队站对牛:实在是恶心的公司
点赞 评论 收藏
分享
03-31 14:46
已编辑
门头沟学院 Web前端
励志成为双港第一ja...:这其实很正常,离的太远了,他认为你不会来,就为了混个面试,而且成本很高,实习生都优先选本地高校。吃了地域的亏,所有很多时候地域可能比院校层次更重要。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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