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

力扣面试150题--岛屿数量

Day 59

题目描述

在这里插入图片描述

思路

一个岛屿是只要1上下左右连接,典型的深搜,如果具体见代码,主要就是得到一个岛屿后,就将1改为2,这样可以节约时间,遍历这个1的上下左右,确定岛屿数量就是通过找1的数目,因为之前为一个岛屿的都改为2了。

class Solution {public  void  dfs(char[][] grid,int i,int j){if (i < 0 || i >= grid.length || j < 0 || j >= grid[i].length || grid[i][j] != '1') {return;}// 标记当前位置为已访问grid[i][j] = '2';// 递归探索四个方向dfs(grid, i + 1, j);dfs(grid, i - 1, j);dfs(grid, i, j + 1);dfs(grid, i, j - 1);}public  int numIslands(char[][] grid) {int num=0;for(int i=0;i<grid.length;i++){for(int j=0;j<grid[i].length;j++){if(grid[i][j]=='1'){//找到1 就是一个新岛屿,原因在于被发现的岛屿中所有的1都改成2了num++;dfs(grid,i,j);}}}return num;}
}
http://www.xdnf.cn/news/12068.html

相关文章:

  • 【计算机网络】网络层协议
  • 【vue3学习】vue3入门
  • C++ 变量三
  • [JS逆向] 烯牛数据
  • Spring Boot微服务架构(十):Docker与K8S部署的区别
  • 5090cuda_torch
  • Python训练打卡Day42
  • 前端面试真题(第一集)
  • 解决pycharm同一个文件夹下from *** import***仍显示No module named
  • 结构性设计模式之Facade(外观)设计模式
  • 34.2STM32下的can总线外设_csdn
  • 修改 Windows 10/11 的系统设置中显示的安装日期
  • CMake入门:1、环境搭建
  • 防火墙设置实战操作案例(小白的“升级打怪”成长之路)
  • FreeType 字体信息检查工具 - 现代C++实现
  • selenium学习实战【Python爬虫】
  • 【贪心、DP、线段树优化】Leetcode 376. 摆动序列
  • 当AI遇上防火墙:新一代智能安全解决方案全景解析
  • Elasticsearch中的自定义分析器(Custom Analyzer)介绍
  • 2025最新Java日志框架深度解析:Log4j 2 vs Logback性能实测+企业级实战案例
  • 一个完整的时间序列异常检测系统,使用Flask作为后端框架,实现了AE(自编码器)、TimesNet和LSTM三种模型,并提供可视化展示
  • Asp.Net Core基于StackExchange Redis 缓存
  • 使用TypeScript构建一个最简单的MCP服务器
  • PDF处理控件Aspose.PDF教程:在 C# 中更改 PDF 页面大小
  • 【从零学习JVM|第二篇】字节码文件
  • Android 项目的核心配置文件
  • 数据结构第一章
  • 边缘计算网关赋能沸石转轮运行故障智能诊断的配置实例
  • Flutter如何支持原生View
  • Unity安卓平台开发,启动app并传参