文章目录

  • 题目描述
  • 代码 & 思路
    • 更新代码

题目描述

  • 直接毁岛!
  • 每次发现一个岛,ans++,然后直接把整个岛毁了(感染)
  • 直到最后,找出所有岛,此时地图上全都是’0’

代码 & 思路

  • 每次找到一个岛,就进行四个方向的递归感染,把整个岛都毁了。
class Solution {int m;int n;public int numIslands(char[][] grid) {m = grid.length;n = grid[0].length;int ans = 0;for(int i=0;i<m;i++){for(int j=0;j<n;j++){// 答案加一,然后把岛毁了if(grid[i][j] == '1'){ans++;dfs(grid,i,j);}}}return ans;}void dfs(char[][] grid, int i, int j){if(i < m && j < n && i >= 0 && j >= 0){if(grid[i][j] == '1'){grid[i][j] = '0';dfs(grid,i+1,j);dfs(grid,i,j+1);dfs(grid,i-1,j);dfs(grid,i,j-1);}}}
}

更新代码

class Solution {public int numIslands(char[][] grid) {int counts = 0;for(int i = 0; i < grid.length; i++) {for(int j = 0; j < grid[0].length; j++) {if(grid[i][j] == '1') {counts++;fire(grid, i, j);}}}return counts;}public void fire(char[][] grid, int i, int j) {if(i >= grid.length || j >= grid[0].length || i < 0 || j < 0 || grid[i][j] == '0') {return;}grid[i][j] = '0';fire(grid, i + 1, j);fire(grid, i - 1, j);fire(grid, i, j + 1);fire(grid, i, j - 1);}
}

【LeetCode笔记】200. 岛屿数量(Java、DFS)相关推荐

  1. 力扣200岛屿数量(DFS/BFS)

    200. 岛屿数量 - 力扣(LeetCode) (leetcode-cn.com) 1.DFS DFS的思路是,首先遍历整个表,找到1结果就加一,之后通过DFS将找到的1连通区域内的所有1变为0,代 ...

  2. 岛屿类-网格类问题-DFS | 力扣200. 岛屿数量

    本文讲解200. 岛屿数量问题,属于常见的岛屿类-网格类问题 本题使用DFS的思想 1 题目 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围, ...

  3. 岛屿问题 通用解-463.岛屿周长-200.岛屿数量-695.岛屿的最大面积-827.最大人工岛

    文章目录 岛屿问题 如何在网格上做DFS(通用解) 463.岛屿的周长 题目 题解 -通用模板 题解2 200.岛屿数量 题目 题解 695.岛屿的最大面积 题目 题解 827.最大人工岛 题目 题解 ...

  4. Leetcode 200.岛屿数量

    Time: 20190902 Type: Medium 题目描述 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地 ...

  5. Leetcode 200. 岛屿数量 解题思路及C++实现

    解题思路: 典型的深度优先搜索问题,跟第130题 被围绕的区域 有点像,只不过这里不仅要找出被水包围的岛屿,还要计算这些岛屿的总数. 使用深度优先搜索的方法,大循环是遍历整个grid数组(两个for循 ...

  6. leetcode 200. Number of Islands | 200. 岛屿数量(Java)

    题目 https://leetcode-cn.com/problems/number-of-islands/ 题解 class Solution {public int numIslands(char ...

  7. LeetCode 200. 岛屿数量(图的遍历)

    文章目录 1. 题目信息 2. 解题 2.1 DFS 2.2 BFS 1. 题目信息 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或 ...

  8. leetcode 200.岛屿数量 c代码

    题目如下: 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它 是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围.示例一 ...

  9. Leetcode 200 岛屿数量 (每日一题 20210720)

    给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量.岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成.此外,你可以假设该网格的四条边均被 ...

最新文章

  1. Python:机器视觉与Tesseract介绍
  2. 13-flutter 加载图片
  3. ISO C99中的一些扩展(草稿)
  4. 解决使用MinGW编译C++代码报cannot find -lxxxx的问题
  5. google的一些秘密入口
  6. c语言遍历字节,C语言遍历结构体
  7. 利用sql语句实现到datagridview显示的转换
  8. JSF 中使用自定义Navigation
  9. Spring Security 之多AuthenticationProvider认证模式实现
  10. java 清屏函数_c++清屏函数是什么
  11. 浅谈电力巡检机器人功能及特点
  12. 鼠标悬停在HTML-TABLE的某一行上 改变这一行的背景颜色
  13. SpringBoot+Vue本地实现微信公总号web端的微信登录获取用户信息,前后端分离
  14. 我要创办一家公司,干翻JetBrains和IDEA!
  15. SecureCRT快捷键大全
  16. 考研备考建议篇——论文怎么投稿
  17. C语言笔记本电脑销售系统课设
  18. 【计算机网络】已知若干个网络,如何计算汇聚成超网后的地址?
  19. 第一课c语言课前准备
  20. 如何让span中的文字垂直居中

热门文章

  1. 2017年网易校招题 买苹果
  2. java中字符串函数_JAVA中字符串函数subString的用法小结
  3. springboot需要tomcat服务器吗_嵌入式 Tomcat AJP 协议对 SpringBoot 应用的影响
  4. java大数模板_java大数模板
  5. jeecg输入中文查询导表为空_学术利器—SCI期刊影响因子查询/中文核心期刊查询系统更新...
  6. 云服务器cvm只能弄网站么,云服务器cvm与建站主机区别
  7. ubuntu安装完mysql无法登录_Ubuntu安装mysql8后无法登陆怎么解决
  8. matlab调用ANSYS--------2
  9. CV中的经典网络模型
  10. python3 中的 eval 函数