题解 | #岛屿数量#

岛屿数量

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);
    }
}

全部评论

相关推荐

11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务