Java 回溯bfs

岛屿数量

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

import java.util.*;


public class Solution {
    /**
     * 判断岛屿数量
     * @param grid char字符型二维数组 
     * @return int整型
     */
    public int solve (char[][] grid) {
        // write code here
        int count=0;
        int m=grid.length;
        int n=grid[0].length;
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(grid[i][j]=='1'){
                    gg(grid,i,j);
                    count++;
                }
            }
        }
        return count;
    }
    public static void gg(char [][]grid,int i,int j){
        if(i<0||i>=grid.length||j<0||j>=grid[0].length ||grid[i][j]=='0'){
            return;
        }
        grid[i][j]='0';
        gg(grid,i+1,j);//向由找
        gg(grid,i,j+1);//向上找
        gg(grid,i,j-1);//向下找
        gg(grid,i-1,j);//向左找
    }
}
全部评论
兄弟,这是 dfs 不是 bfs
点赞 回复 分享
发布于 2021-03-15 15:26
应该没问题,我以前在力扣也做过这个题目,都通过验证了
点赞 回复 分享
发布于 2021-03-14 13:53
如果连在一起,就算一个岛屿
点赞 回复 分享
发布于 2021-03-14 13:52
弱弱的 问一句:第 19 行是不是有问题呢? 题目问的是【岛屿】数量,不是陆地数量;并不是等于 1 就 count ++;如果将第一行改成[1,0,0,0,0]那么岛屿应该有 2 个但是结果是 4;
点赞 回复 分享
发布于 2021-03-11 16:45

相关推荐

那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
06-13 12:13
已编辑
东北大学 射频工程师
26毕业的,日常实习还能找到吗
求实习的青提很想去大厂:目前应该还有hc吧,腾讯感觉还有hc,最近捞了我好几次,因为目前有offer,所以不准备面了,可以再找找,不行的话就找找中小厂试试,因为我之前也找了好久,准备放弃了,结果有个岗位流程特别顺利,然后就oc,只能说坚持下试试,万一呢💪
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

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