【编程习题★★★☆☆】计算岛屿的数量
来源:互联网 发布:sql修改约束条件 编辑:程序博客网 时间:2024/06/16 04:37
题目:用一个N*N的矩阵来表示一张地图,其中0位海洋,1位陆地。被0保围起来的所有1组成岛屿。试计算矩阵中岛屿的数量。
示例:
1 0 0 0 1 1 0 0
1 1 0 1 0 0 1 0
1 1 1 1 0 0 1 1
0 0 0 1 0 0 1 0
输出:3
分析:以每一元素作为起点进行一次深度优先遍历,将所遇到的1全部标记为0,无法进行下去时,计数器加一,代表搜索完一座岛屿,依次类推。
JAVA:
public int numIslands(char[][] grid) {if (grid != null) {int count = 0;for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {if (grid[i][j] == '1') {measureIsland(grid, i, j);count++;}}}return count;}return 0;}private void measureIsland(char[][] grid, int i, int j) {if (grid[i][j] != '0') {grid[i][j] = '0';if (i != 0)measureIsland(grid, i - 1, j);if (j != 0)measureIsland(grid, i, j - 1);if (i != grid.length - 1)measureIsland(grid, i + 1, j);if (j != grid[0].length - 1)measureIsland(grid, i, j + 1);}}
0 0
- 【编程习题★★★☆☆】计算岛屿的数量
- 1276 岛屿的数量
- 岛屿的数量
- LeetCode之岛屿的数量
- 岛屿的数量(思维)
- 岛屿的数量 51Nod
- 岛屿的数量 51Nod
- 51nod 1276:岛屿的数量 (贪心)
- 51NOD 1276 岛屿的数量
- 51nod 1276 岛屿的数量
- 51nod-【1276 岛屿的数量】
- 51nod 1276 岛屿的数量
- 51nod 1276 岛屿的数量
- 51nod 1276 岛屿的数量
- 51Nod-1276-岛屿的数量
- 51nod 1276 岛屿的数量
- 【编程习题★★★☆☆】等式变换求解
- 【编程习题★★☆☆☆】螺旋打印N*N的矩阵
- 数组里a和&a的区别
- [HttpException (0x80004005): 未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。]
- CGRectInset CGRectoffset UIEdgeInsetsInsetRect 这三个函数的使用
- stripslashes和addslashes的区别
- Android官方培训课程中文版
- 【编程习题★★★☆☆】计算岛屿的数量
- 极课 good
- 装饰者模式
- 判断当前一个物料被其他人锁定
- Android如何实现左边侧滑界面SlidingMenu
- 推荐系统-埋点
- IM收藏
- TextView/EditText字体阴影 ,自动换行,焦点获取,输入法回车键前往,自定义光标
- ios开发Keyboard Type及其截图