题解 | #岛屿数量#

岛屿数量

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

import java.util.*;


public class Solution {
    /**
     * 判断岛屿数量
     * @param grid char字符型二维数组 
     * @return int整型
     */
    public int solve (char[][] grid) {
        // write code here
        if(grid.length==0){
            return 0;
        }
        int row=grid.length;
        int col=grid[0].length;
        boolean[][] mark=new boolean[row][col];
        int k=0;
        for(int i=0;i<row;i++){
            for(int j=0;j<col;j++){
                if(grid[i][j]=='1'&&!mark[i][j]){
                    dfs(grid,i,j,row,col,mark);
                    k++;
                }
            }
        }
        return k;
    }

    public void dfs(char[][]grid,int i,int j,int row,int col,boolean[][] mark){
        if(i<0||j<0||i>=row||j>=col||mark[i][j]||grid[i][j]=='0'){
            return;
        }
        mark[i][j]=true;
        dfs(grid,i-1,j,row,col,mark);
        dfs(grid,i,j-1,row,col,mark);
        dfs(grid,i+1,j,row,col,mark);
        dfs(grid,i,j+1,row,col,mark);
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-20 19:41
那一天的Java_J...:简历完全流水账,学生思维很严重,还有很大的优化空间,可以多看看牛客的简历。
点赞 评论 收藏
分享
ResourceUt...:楼主有自己的垃圾箱,公司也有自己的人才库
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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