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);
}
}

最新文章

  1. 技术英文单词贴--D
  2. boi剖析 - 基于webpack的css sprites实现方案
  3. 安装MVC3后没有dbcontext生成器的解决方案
  4. awk,perl,python的命令行参数处理
  5. linq的创建 和 数据的增删改查
  6. cmd 窗口的复制粘贴
  7. vc 获取网页内容(HTTP)
  8. java中完美打包
  9. 软件开发人员真的了解SQL索引吗(索引使用原则)
  10. ACM 海贼王之伟大航路(深搜剪枝)
  11. Navicat premium 破解步骤
  12. python 中argparse 实例解析
  13. es-aggregations聚合分析
  14. BCG库的一个bug
  15. sqlmap工作流程图
  16. HDU 4725 The Shortest Path in Nya Graph (最短路)
  17. J2EE学习篇之--Struts1详解
  18. 第五章 JVM垃圾收集器(1)
  19. android fragment activity 区别
  20. EmguCV3.0几个控件的使用

热门文章

  1. 设计模式之GOF23代理模式02
  2. python --内建结构 汉诺塔结构
  3. md5函数
  4. HttpServletRequest 和 HttpServletResponse详解
  5. MySQL事务及实现、隔离级别及锁与优化
  6. dockerfile定制docker的脚本文件
  7. easyui API
  8. 王艳 201771010127《面向对象程序设计(java)》第十一周学习总结
  9. 去重函数unique,sort,erase的应用
  10. 【Mac】屏蔽系统升级更新