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
- LinkCode-岛屿的个数
- 题目:岛屿的个数
- LintCode 岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 岛屿的个数-lintcode
- 岛屿的个数
- 岛屿的个数
- LintCode:岛屿的个数
- 433-岛屿的个数
- 岛屿的个数
- 岛屿的个数-LintCode
- 岛屿的个数(LintCode)
- LintCode 433. 岛屿的个数
- Java实现-岛屿的个数
- 岛屿个数
- Lintcode解题笔记 - 岛屿的个数
- LintCode——岛屿的个数
- php 系统的代码组织
- SurfaceView+MediaPlayer 播放视频 锁屏 没有画面等各种问题的解决方案。
- Android webview 和html 交互
- 创建银行账户 -- 未验证
- hibernate4 二级缓存demo实例
- LinkCode-岛屿的个数
- MySQL常见错误汇总
- android 4.2.2提示 unauthorized终极解决办法,很粗暴
- Android5.0源码-国内镜像网站上用repo下载
- VS查看PTX代码
- 写单体测试
- Java设计模式之抽象工厂模式
- Linux下配置Java web服务器
- 百度地图 v3.5 根据数据源添加很多覆盖物和监听这些覆盖物,处理覆盖物重叠,点击添加覆盖物