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

相关推荐

评论
5
收藏
分享

创作者周榜

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