[leetcode]200. Number of Islands岛屿数量
2024-09-02 09:44:58
dfs的第一题
被边界和0包围的1才是岛屿,问题就是分理出连续的1
思路是遍历数组数岛屿,dfs四个方向,遇到1后把周围连续的1置零,代表一个岛屿。
/*
思路是:遍历二维数组,遇到1就把周围连续的1变成0,res+1,然后继续遍历,直到结束
周围连续1置零用的是dfs,向四个位置搜索,遇到0返回
*/
public int numIslands(char[][] grid) {
if (grid.length==0) return 0;
int r = grid.length;
int c = grid[0].length;
int res = 0;
//遍历数组
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (grid[i][j]=='1')
{
res++;
//进行置零操作
dfs(grid,i,j,r,c);
}
}
}
return res;
}
public void dfs(char[][] grid,int i,int j,int r,int c)
{
//出界和遇0返回
if (i<0||j<0||i>=r||j>=c||grid[i][j]!='1') return;
//置零
grid[i][j]='0';
//把周围连续的置零
dfs(grid,i-1,j,r,c);
dfs(grid,i+1,j,r,c);
dfs(grid,i,j-1,r,c);
dfs(grid,i,j+1,r,c);
}
最新文章
- 《IT蓝豹》吹雪花demo,学习android传感器
- 2016暑假多校联合---Counting Intersections
- mysql 2003 10038 连接不上的解决
- 蓝桥杯——FJ字符串
- C#常用集合的使用
- javascript基础-语法
- 解决mydql执行sql文件时报Error: Unknown storage engine &#39;InnoDB&#39;的错误。
- arcgis 加载png图片实现图片跟随地图缩放 和图片的动态播放
- SSM 设置静态资源处理
- 【python】多进程与mongo
- angular 2 - 005 路由实现机制
- More is better
- 10 种机器学习算法的要点(附 Python 和 R 代码)
- Analyze a docker instance start failure
- JVM内存管理--GC算法详解
- dblink(转)
- 利用jenkins打造通过自定义参数更新svn 指定文件任务
- hdu1358 kmp的next数组
- 用Micro:bit播放生日快乐歌
- Redux 处理异步 Action
热门文章
- 软件工程与UML第三次作业
- kafka监听出现的问题,解决和剖析
- JZOJ【NOIP2012模拟8.9】2020.10.5 T1
- JZOJ8月5日提高组反思
- PyQt(Python+Qt)学习随笔:QListWidget获取当前选中项的selectedItems方法
- PyQt(Python+Qt)学习随笔:QColumnView的resizeGripsVisible属性
- 自动化运维工具之Puppet master/agent模型、站点清单和puppet多环境设定
- Oracle10g安装
- Robot framework 环境搭建+图标处理
- 【Dotnet9-01】从0开始搭建开源项目-lqclass.com