Java实现 LeetCode 200 岛屿数量
2024-08-26 00:59:20
200. 岛屿数量
给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。
示例 1:
输入:
11110
11010
11000
00000
输出: 1
示例 2:
输入:
11000
11000
00100
00011
输出: 3
PS:
循环得时候把1变成2,防止重复计算一个岛,并且提高效率
class Solution {
public int numIslands(char[][] grid) {
int islandNum = 0;
for(int i = 0; i < grid.length; i++){
for(int j = 0; j < grid[0].length; j++){
if(grid[i][j] == '1'){
infect(grid, i, j);
islandNum++;
}
}
}
return islandNum;
}
//感染函数
public void infect(char[][] grid, int i, int j){
if(i < 0 || i >= grid.length ||
j < 0 || j >= grid[0].length || grid[i][j] != '1'){
return;
}
grid[i][j] = '2';
infect(grid, i + 1, j);
infect(grid, i - 1, j);
infect(grid, i, j + 1);
infect(grid, i, j - 1);
}
}
最新文章
- 技术英文单词贴--D
- boi剖析 - 基于webpack的css sprites实现方案
- 安装MVC3后没有dbcontext生成器的解决方案
- awk,perl,python的命令行参数处理
- linq的创建 和 数据的增删改查
- cmd 窗口的复制粘贴
- vc 获取网页内容(HTTP)
- java中完美打包
- 软件开发人员真的了解SQL索引吗(索引使用原则)
- ACM 海贼王之伟大航路(深搜剪枝)
- Navicat premium 破解步骤
- python 中argparse 实例解析
- es-aggregations聚合分析
- BCG库的一个bug
- sqlmap工作流程图
- HDU 4725 The Shortest Path in Nya Graph (最短路)
- J2EE学习篇之--Struts1详解
- 第五章 JVM垃圾收集器(1)
- android fragment activity 区别
- EmguCV3.0几个控件的使用