当前位置: 首页 > news >正文

2025年--Lc227--200. 岛屿数量(递归,带测试用例)-Java版

1.题目

在这里插入图片描述

2.思路

岛屿是1,每座岛屿只能由水平方向和竖直方向上相邻(该元素的上下左右的方向)的陆地陆续连接形成。
(1) 如果是陆地,我们就递归的深度搜索该元素的前后左右的元素。
(2) 从元素1出发,把整块岛屿全部淹没.
岛屿 +1(只在起点处加一次)

递归遍历的逻辑:
判断边界条件,如果是海洋,或者是矩阵外的元素直接return
(1) 把当前陆地“淹没”为水,相当于“已访问”标记

(2)向四个方向扩展,把与当前格连通的陆地都淹没

3.代码实现

带测试用例版

public class numIslands {public int num(char[][] grid){//行数int m= grid.length;//列数int n=grid[0].length;//岛屿数量的计数器int cnt=0;//遍历矩阵for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j]=='1') {//如果遇到陆地dfs(grid, i, j);//递归遍历陆地的四周的元素cnt++;//把陆地的起始元素设置为岛屿数量}}}return cnt;}public void dfs(char[][] grid,int i,int j){//判断边界条件,遇到海洋也直接跳过if(i<0||j<0||i>=grid.length||j>=grid[0].length||grid[i][j]=='0'){return;}grid[i][j]='0';//把遍历过的陆地置为0,以及该陆地元素四周的相连元素也置为0;dfs(grid,i+1,j);dfs(grid,i-1,j);dfs(grid,i,j+1);dfs(grid,i,j-1);}public static void main(String[] args){numIslands  test=new numIslands();char[][] arr = {{'1', '1', '1', '1', '0'},{'1', '1', '0', '1', '0'},{'1', '1', '0', '0', '0'},{'0', '0', '0', '0', '0'}};int res=test.num(arr);System.out.println(res);}}

leetcode版

class Solution {public int numIslands(char[][] grid) {//行数int m=grid.length;//列数int n=grid[0].length;//岛屿计数int cnt=0;for(int i=0;i<m;i++)//遍历函数{for(int j=0;j<n;j++){//如果是陆地,我们就递归的深度搜索该元素的前后左右的元素if(grid[i][j]=='1'){dfs(grid,i,j);//// 从这里出发,把整块岛屿全部淹没cnt++; // 岛屿 +1(只在起点处加一次)}}}return cnt;}public void dfs(char[][]grid,int i,int j){ //行数int m=grid.length;//列数int n=grid[0].length;if(i<0||j<0||i>=m||j>=n||grid[i][j]=='0'){return;}// 把当前陆地“淹没”为水,相当于“已访问”标记grid[i][j]='0';//向四个方向扩展,把与当前格连通的陆地都淹没dfs(grid,i+1,j);dfs(grid,i-1,j);dfs(grid,i,j-1);dfs(grid,i,j+1);}
}
http://www.dtcms.com/a/554899.html

相关文章:

  • 备份文件wordpressseo网站的优化流程
  • 自己的网站如何做推广开源 购物网站
  • 企业网页制作与网站设计自己做的网站怎么让别人看到
  • 海德格尔的“形式指示” vs LLM 的提示工程
  • 靖江市网站建设内蒙网站建设赫伟创意星空科技
  • XML Schema 属性
  • 公众号做 视频网站wordpress 数据库连接文件
  • CentOS 7上编写C程序访问MySQL数据表
  • 企业所得税优惠政策合肥网站优化seo
  • 二维码/条码识别、身份证识别、银行卡识别、车牌识别、图片文字识别、黄图识别、驾驶证(驾照)识别
  • 东莞商城网站建设哪家便宜北京首钢建设有限公司网站
  • 机器学习-回归分析之一元线性回归
  • 外网专门做钙片的网站vs2013做网站
  • 征程 6 | 多任务 不同帧率 部署方案
  • 网站开发后台用什么语言精美网站
  • 做图客网站设计公司起名大全免费
  • 【论文精读/Survey】高效扩散模型:从原理到实践的全面解析
  • 天津市住房城乡建设部网站网络销售平台推广
  • 网站竞价怎么做wordpress页面添加分类
  • 厅网站建设项目背景福州网站建设个人兼职
  • 网站怎么做定位功能网站截图可以做证据吗
  • 杭州建设项目审批网站宁波跨境电商公司排名前十
  • 网站建设可以经营吗辽宁省营商建设监督局网站
  • 第二周:事件监听 + 用户交互
  • 镇江高端网站定制青海营销网站建设服务
  • SimPy入门实战:用离散事件仿真优化整车装配线人员配置
  • 青岛网站建设全包澄海网站建设
  • 做二手家具回收哪个网站好互联网大厂设计哪家口碑好
  • 建设局网站作用wordpress 下划线 快捷键
  • 金仓KES RAC架构深度解析:高可用数据库的实践与优化