200 Number of Islands
来源:互联网 发布:lol数据库魔切 编辑:程序博客网 时间:2024/05/22 00:18
也是一道经典的 dfs的题目,我一眼都不看代码,试图自己从零开始写,看能不能一遍过。。。
代码如下,捂住眼不看,哈哈
public class Solution { public int numIslands(char[][] grid) { 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'){ count++; dfs(grid, i, j); } } } return count; } private void dfs(char[][] grid, int x, int y){ if(x<0 || y<0 || x>=grid.length || y>=grid[0].length || grid[x][y]=='0') return; grid[x][y]='0'; dfs(grid, x-1, y); dfs(grid, x+1, y); dfs(grid, x, y-1); dfs(grid, x, y+1); }}
今天的代码如下,说老实话,写到dfs,我还是缺乏一个明确的设计思路,所以还是看了一眼代码,现在记住了,dfs在这道题中的作用就是set to 0,就是毁灭island,遇到一个island就把这个island全部设为0。。。然而如何遍历这些island,那就是从主函数里去做两个loop了,找到了1的点,那就调用毁灭函数dfs,同时记得计数哦。。。
public class Solution { public int numIslands(char[][] grid) { if(grid.length==0 || grid[0].length==0) return 0; int m= grid.length; int n= grid[0].length; int result=0; for(int i=0; i<m; i++){ for(int j=0; j<n; j++){ if(grid[i][j]=='1'){ result++; dfs(grid, i, j); } } } return result; } private void dfs(char[][] grid, int x, int y){ if(x<0 || y<0 || x>=grid.length || y>=grid[0].length || grid[x][y]=='0') return; grid[x][y]='0'; dfs(grid, x-1, y); dfs(grid, x+1, y); dfs(grid, x, y-1); dfs(grid, x, y+1); }}
0 0
- 200 Number of Islands
- 200Number of Islands
- 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
- [LeetCode 200] Number of Islands
- Leetcode #200 Number of Islands
- LeetCode 200 Number of Islands
- LeetCode 200 Number of Islands
- leetcode: Number of Islands(200)
- 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
- React-Native 中自定义checkbox组件
- dubbo+zookeeper 分布式项目搭建
- 十八掌全套大数据课程免费送
- linux 安装 redis
- 处理百万级别以上的数据查询提高效率的方法
- 200 Number of Islands
- 现有P2P协议分类与简介
- Android ToolBar整合
- 这个emoji表情可使iphone变砖
- 使用Rxbus+MVC模式搭建的项目框架
- android布局优化
- Ubuntu 安装 hadoop
- Oracle 字符集的查看和修改
- MindMapper生成Web UR的方法