题解 | #岛屿数量#TOP57

import java.util.*;


public class Solution {
    /**
     * 判断岛屿数量
     * @param grid char字符型二维数组 
     * @return int整型
     */
    public int solve (char[][] grid) {
        // write code here
        if(grid == null || grid.length == 0){
            return 0;
        }
        int landNum = 0;
        for(int i = 0;i < grid.length ;i++){
            for(int j = 0; j< grid[0].length;j++){
                if(grid[i][j] == '1'){
                    landNum ++;
                    //需要将 [i,j]后面的数据1全部变成0
                    dfs(grid, i , j);
                }
            }
        }
        return landNum;
    }
    private void dfs(char[][] grid,int r,int c){
        int row = grid.length;
        int col = grid[0].length;
        if(r < 0 || c <0 || r >= row || c >= col || grid[r][c] == '0' ){
            return;
        }
        grid[r][c] = '0';
        dfs(grid, r+1,c);
        dfs(grid, r-1, c);
        dfs(grid, r, c-1);
        dfs(grid, r, c+1);
    }
}
全部评论

相关推荐

来!
G了的牛可乐很爱吃烤...:百度面试官 给我说, 十月后开奖,现在都在泡池子
点赞 评论 收藏
分享
07-27 16:41
门头沟学院 Java
程序员小白条:学历和简历问题,你想走开发,现在很难的啦,尤其后端方向很难走,前端、测开,都会好很多,另外要等8月底和9月初去投日常
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-08 18:20
职场水母:这题思路是什么,我目前想的一个暴力方法就是先把这个链表遍历一遍,用哈希表存储出现次数,然后再根据哈希表来一个一个删除节点,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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