leetcode 200. Number of Islands-岛屿数量|并查集算法
来源:互联网 发布:mac 终端命令 编辑:程序博客网 时间:2024/06/04 19:48
原题链接:200. Number of Islands
【思路-Java】 递归实现
本题考查dfs和bfs的结合。由于题目没有限制不可改变原数组的结构,grid 中有两个“状态”——'0'和'1',那么我们可以新增一个状态'2',来代表该位置为原先是'1',但是与其他位置联通了
public class Solution { public int numIslands(char[][] grid) { int num = 0; for(int i = 0; i < grid.length; i++) { for(int j = 0; j < grid[0].length; j++) { if(grid[i][j] != '1') continue; dfs(grid, i, j); //dfs 和 bfs 结合,将 (i,j)及附近能联通的所有值为1的点值置为1 num++; } } return num; } private void dfs(char[][] grid, int i, int j) { //dfs深度遍历 if(i >= grid.length || i < 0 || j < 0 || j >= grid[0].length || grid[i][j] != '1') return; grid[i][j] = '2'; dfs(grid, i+1, j); //这四个 dfs 整体看来是 bfs dfs(grid, i, j+1); dfs(grid, i-1, j); dfs(grid, i, j-1); }}
47 / 47 test cases passed. Runtime: 3 ms Your runtime beats 67.87% of javasubmissions.
1 0
- leetcode 200. Number of Islands-岛屿数量|并查集算法
- LeetCode 200. Number of Islands (并查集)
- leetcode解题之200. Number of Islands Java版(岛屿的数量)
- 200 Number of Islands(岛屿数量)
- (LeetCode 200)Number of Islands(并查集、DFS)
- Leetcode 200 Number of Islands 并查集
- Number of Islands 岛屿个数
- [LeetCode]200. Number of Islands岛的数量
- [Java代码] [Leetcode] Number of Islands 岛屿个数
- [LeetCode]200.Number of Islands
- LeetCode 200. Number of Islands
- [leetcode] 200.Number of Islands
- 【leetcode】 200. Number of Islands
- [leetcode] 200. Number of Islands
- Leetcode 200. Number of Islands
- 200. Number of Islands LeetCode
- leetcode 200. Number of Islands
- LeetCode 200. Number of Islands
- [技术讨论]关于android端apk退出方式的设计
- Javascript 检查字符串是否是数字的几种方法
- HDU 吉哥系列故事——临时工计划
- apk在线反编译
- java入门基础笔记第四天
- leetcode 200. Number of Islands-岛屿数量|并查集算法
- [NOIP2014]寻找道路 D2 T2 bfs
- 由unix文件I/O引出的原子操作
- STM32 + UCGUI+外扩NAND FLASH 中文字库支持方法
- jquery控制css
- CocoaPods 宝典
- iOS模拟Tom猫的简单界面
- 【技巧】把Chrome浏览器变成文本编辑器
- 数据库事务的四大特性(ACID)及事务隔离级别