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

9.17 DFS中等 200 Number of Islands

200 Number of Islands【DFS函数默写,递归思路学习】

在这里插入图片描述

使用 DFS递归的思路:不需要确定具体方向,直接上下左右全面开花,如果不满足探索条件就直接暂停递归,如果满足探索条件就直接在新的数组中进行标记。所以探索条件是:在matrix范围内+不为海水‘1’+没有探索过island==0

class Solution {
public:void DFS(vector<vector<char>>& grid ,vector<vector<int>>& island, int i ,int j){int m = grid.size();int n = grid[0].size();//过滤条件判断,确保在矩阵内,且当前点是陆地且未被访问if(i<0 || i >= m || j<0 || j>=n || grid[i][j] == '0' || island[i][j] == 1) return ;//满足探索条件island[i][j] = 1;// 递归访问四个方向DFS(grid, island, i - 1, j); // 上DFS(grid, island, i + 1, j); // 下DFS(grid, island, i, j - 1); // 左DFS(grid, island, i, j + 1); // 右}int numIslands(vector<vector<char>>& grid) {int m = grid.size();int n = grid[0].size();vector<vector<int>> island(m , vector<int>(n,0));int num = 0;for(int i = 0 ; i < m ; i++){for(int j = 0; j < n ; j++){//没遇过的岛屿if(grid[i][j] == '1' && island[i][j] == 0){//探索岛屿DFS(grid,island , i , j);num++;}}}return num;}};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【系统架构设计师】虚拟机架构风格
  • 使用Mockito进行单元测试
  • 【Linux】查看操作系统开机时初始化的驱动模块列表的一个方法
  • AI教你学Python 第10天 :参数与返回值
  • HarmonyOS 速记
  • 18、Python如何读写csv文件
  • Netty笔记09-网络协议设计与解析
  • 佛山网站制作与设计
  • [掌握API速率限制:如何高效管理请求频率]
  • Simulink仿真理想二极管模型
  • 【C#生态园】虚拟现实与增强现实:C#开发库全面评估
  • 【Linux】Linux项目自动化构建工具-make/Makefile
  • Go语言并发编程之Channels详解
  • 【Java】基础语法介绍
  • 力扣刷题之2398.预算内的最多机器人数目
  • hexo+github搭建个人博客
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 5、React组件事件详解
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Java反射-动态类加载和重新加载
  • JS变量作用域
  • JS实现简单的MVC模式开发小游戏
  • Next.js之基础概念(二)
  • rc-form之最单纯情况
  • Transformer-XL: Unleashing the Potential of Attention Models
  • tweak 支持第三方库
  • Vue UI框架库开发介绍
  • vue.js框架原理浅析
  • 阿里云应用高可用服务公测发布
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 学习笔记TF060:图像语音结合,看图说话
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 7行Python代码的人脸识别
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​批处理文件中的errorlevel用法
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (21)起落架/可伸缩相机支架
  • (C语言)球球大作战
  • (zt)最盛行的警世狂言(爆笑)
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core 版本不支持的问题
  • .NET Core 通过 Ef Core 操作 Mysql