LinkCode-岛屿的个数

来源:互联网 发布:中控考勤机软件 编辑:程序博客网 时间:2024/04/30 04:52

岛屿的个数

给一个01矩阵,求不同的岛屿的个数。

0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。

样例
在矩阵:

[
[1, 1, 0, 0, 0],
[0, 1, 0, 0, 1],
[0, 0, 0, 1, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 1]
]
中有 3 个岛.

问题分析:
1.这里采用暴力遍历的方法,遍历矩阵里面每一个元素.
2.发现岛屿后,运行find方法去找它的上下左右元素,判断是否为岛屿,是的话把true设为false,避免重复查找(递归)
3.知道查找完所有周围点为false后,结束find.
4.继续查找下一个岛屿.

public class Solution {    /**     * @param grid a boolean 2D matrix     * @return an integer     */    public int numIslands(boolean[][] grid) {        int k=0;        for (int i = 0; i < grid.length; i++) {            for(int j=0;j<grid[0].length;j++){                if(grid[i][j]){                    k++;                    find(i,j,grid);                }            }        }        return k;    }    public  void find(int i,int j,boolean[][] grid){        grid[i][j]=false;        if(i+1<grid.length&&grid[i+1][j]){            find(i+1,j,grid);        }        if(j+1<grid[0].length&&grid[i][j+1]){            find(i,j+1,grid);        }        if(i>0&&grid[i-1][j]){            find(i-1,j,grid);        }        if(j>0&&grid[i][j-1]){            find(i,j-1,grid);        }    }}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 熊猫麻将ip一样怎么办 公积金代扣失败怎么办 信用账户中签了怎么办 大话西游账号忘记了怎么办 网易云忘记账号怎么办 校园网登录不上怎么办 wifi名称隐藏了怎么办 玩游戏不能全屏怎么办 方舟手机版回档怎么办 进京证审核中怎么办 美篇审核中怎么办 视频不能转码怎么办 文件太大上传不了怎么办 数据库添加日志错误怎么办 桌面计算机图标不见了怎么办 qq空间封闭了怎么办 血小板600多怀孕怎么办 干活要不到工钱怎么办 银联手机号换了怎么办 深圳个体户工商年检怎么办 三个人合伙怎么办执照 两个人合伙怎么办执照 单位公章坏了怎么办 公章外壳坏了怎么办 公司变更名称银行怎么办 公司被起诉了怎么办 微信限制搜索怎么办 微博vip改不了怎么办 改不了微信号怎么办 修改不了微信号怎么办 触屏自检失败怎么办 微信名片加不上怎么办 微信号不是手机号怎么办 qq被盗号了怎么办 不知道对方名字怎么办 qq密码找不到了怎么办 好朋友跟你告白怎么办 感情破裂没证据怎么办 在微信里找不到昵称怎么办 营业执照副本丢了怎么办 个体营业执照副本丢失怎么办