200. 岛屿数量

图片说明

class Solution {
    //总结 二维数组需要考虑n 在考虑m
    //需要看看左右上下 而不是仅考虑右下
    public int numIslands(char[][] grid) {
        int n = grid.length;
        if(n==0)return 0;
        int m = grid[0].length;
        if(m==0)return 0;
        boolean flag [][] =  new boolean [n][m];
        int ans = 0 ;
        for(int i = 0 ; i < n ; i++ ) {
            for(int j = 0; j < m ;j++) {
                if(grid[i][j]=='1'&&flag[i][j]!=true) {
                    bool_flag(flag,grid,i,j,n,m);
                    ans++;
                }
            }
        }
        return ans;
    }
    public void bool_flag(boolean flag[][],char[][] grid,int i , int j,int n , int m) {
        if(i<0||j<0||i>=n||j>=m||grid[i][j]=='0'||flag[i][j]==true) {
            return ;
        }
        else {
            flag[i][j] = true;
            bool_flag(flag,grid,i+1,j,n,m);
            bool_flag(flag,grid,i-1,j,n,m);
            bool_flag(flag,grid,i,j+1,n,m);
            bool_flag(flag,grid,i,j-1,n,m);
        }
    }

}
全部评论

相关推荐

怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
宇算唯航:目测实缴资本不超100W的小公司
点赞 评论 收藏
分享
积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
小叮当411:应该是1-3个月吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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