力扣labuladong——一刷day75

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣200. 岛屿数量(广搜)
  • 二、力扣200. 岛屿数量(深搜)


前言


图论,深搜还有广搜都只是手段

一、力扣200. 岛屿数量(广搜)

class Solution {int[][] arr = new int[][]{{0,1},{0,-1},{1,0},{-1,0}};boolean[][] flag;public int numIslands(char[][] grid) {int count = 0;flag = new boolean[grid.length][grid[0].length];for(int i = 0; i < grid.length; i ++){for(int j = 0; j < grid[0].length; j ++){if(!flag[i][j] && grid[i][j] == '1'){count ++;bfs(grid, i, j);}}}return count;}public void bfs(char[][] grid, int x, int y){Deque<int[]> deq = new ArrayDeque<>();deq.offerLast(new int[]{x,y});flag[x][y] = true;while(!deq.isEmpty()){int size = deq.size();for(int i = 0; i < size; i ++){int[] cur = deq.pollFirst();for(int j = 0; j < 4; j ++){int curX = cur[0] + arr[j][0];int curY = cur[1] + arr[j][1];if(curX < 0 || curY < 0 || curX >= grid.length || curY >= grid[0].length || grid[curX][curY] == '0' || flag[curX][curY]){continue;}flag[curX][curY] = true;deq.offerLast(new int[]{curX,curY});}}}}
}

二、力扣200. 岛屿数量(深搜)

class Solution {int[][] arr = new int[][]{{0,1},{0,-1},{1,0},{-1,0}};boolean[][] flag;public int numIslands(char[][] grid) {int count = 0;flag = new boolean[grid.length][grid[0].length];for(int i = 0; i < grid.length; i ++){for(int j = 0; j < grid[0].length; j ++){if(!flag[i][j] && grid[i][j] == '1'){count ++;dfs(grid, i, j);}}}return count;}public void dfs(char[][] grid, int x, int y){if(flag[x][y]){return;}flag[x][y] = true;for(int i = 0; i < 4; i ++){int curX = x + arr[i][0];int curY = y + arr[i][1];if(curX < 0 || curY < 0 || curX >= grid.length || curY >= grid[0].length || grid[curX][curY] == '0'){continue;}dfs(grid, curX, curY);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某保险公司持续信赖监控易:优化网络运维,确保业务稳定

一、背景介绍 某保险有限公司&#xff0c;作为一家全国知名的保险公司&#xff0c;始终以科技创新和优质服务为引领&#xff0c;不断优化其业务运营。随着业务的快速发展&#xff0c;其IT系统规模日益庞大&#xff0c;网络运维压力也随之增大。为了提高IT系统的稳定性和可靠性&…

drf入门规范

一 Web应用模式 在开发Web应用中&#xff0c;有两种应用模式&#xff1a; 1.1 前后端不分离 1.2 前后端分离 二 API接口 为了在团队内部形成共识、防止个人习惯差异引起的混乱&#xff0c;我们需要找到一种大家都觉得很好的接口实现规范&#xff0c;而且这种规范能够让后端写…

获取和移除cookie的方法

下载npm的cookie插件, 在utils.js文件中引入插件: 封装原始的Cookies.get()方法: 在xxxx.vue文件中引入方法: 使用getCookie方法获取cookie: 封装 移除cookie: export const removeCookie name>{ const options { path: /, domain: xxx.com }; Cookies.remove(name, opti…

i春秋云镜之Tsclient

首先拿到目标:39.99.137.155 首先通过Fscan扫描目标: 可以看到扫描出来了一个SqlServer的弱口令。 账号是sa&#xff0c;密码是1qaz!QAZ。 这里就不使用navicat进行连接了&#xff0c;这里使用impacket-mssqlclient进行连接。 impacket-mssqlclient sa:1qaz!QAZ39.99.137.…

糖糖别胡说,我真的不是签到题目

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 从前&#xff0c;有 nnn 只萌萌的糖糖&#xff0c;他们分成了两组一起玩游戏。他们会排成一排&#xff0c;第 iii 只糖糖会随机得到一个能力值 bib_ibi​。从第 iii 秒的时候&#xff…

yolov5单目测距+速度测量+目标跟踪

要在YOLOv5中添加测距和测速功能&#xff0c;您需要了解以下两个部分的原理&#xff1a; 单目测距算法 单目测距是使用单个摄像头来估计场景中物体的距离。常见的单目测距算法包括基于视差的方法&#xff08;如立体匹配&#xff09;和基于深度学习的方法&#xff08;如神经网…

数据结构之---- 分治算法

数据结构之---- 分治算法 什么是分治算法&#xff1f; 分治&#xff0c;全称分而治之&#xff0c;是一种非常重要且常见的算法策略。 分治通常基于递归实现&#xff0c;包括 分 和 治 两个步骤&#xff1a; 分&#xff08;划分阶段&#xff09;&#xff1a;递归地将原问题分…

深度解析AI算力:软件测试工程师的新挑战与新机遇

简介&#xff1a;在AI技术日益普及的今天&#xff0c;AI算力以及TOPS这个性能衡量指标越来越引起人们的关注。对于软件测试工程师来说&#xff0c;理解这个概念并了解如何在实践中应用是至关重要的。本文将详细解析AI算力&#xff0c;为何它对软件测试工程师如此重要&#xff0…

冰镇的红酒有什么特色呢?

冰镇红酒远不是一个新现象&#xff0c;大多数葡萄酒饮用者仍然坚持白葡萄酒应该冰镇后饮用&#xff0c;而红葡萄酒应该在室温下饮用这种过时的信念。在几十年或几个世纪的时间里&#xff0c;当“室温”更接近于地窖温度时&#xff0c;这种说法可能是正确的&#xff0c;但在当代…

使用playbook部署k8s集群

1.部署ansible集群 使用python脚本一个简单的搭建ansible集群-CSDN博客 2.ansible命令搭建k8s&#xff1a; 1.主机规划&#xff1a; 节点IP地址操作系统配置server192.168.174.150centos7.92G2核client1192.168.174.151centos7.92G2核client2192.168.174.152centos7.92G2 …

Android 在UploadEventService使用ThreadPoolManager线程管理传递数据给后台

Android 在UploadEventService使用ThreadPoolManager线程管理传递数据给后台&#xff0c;如何实现呢&#xff1f; 可以通过以下步骤使用ThreadPoolManager线程管理传递数据给后台&#xff1a; 创建一个ThreadPoolManager类来管理线程池&#xff0c;比如&#xff1a; public cl…

API测试:从入门到精通,干货满满,趣味无穷

一、引言 随着数字化时代的到来&#xff0c;应用程序接口&#xff08;API&#xff09;已经成为软件开发和交互的核心。API测试是确保API质量和稳定性的关键环节。本文将带你了解API测试的基本概念、方法和技巧&#xff0c;让你在轻松愉快的氛围中掌握这一技能。 二、API测试概…

01-C++基础

c概述 1. 概述 1.1 简介 “c” 中的 来自于 c 语言中的递增运算符&#xff0c;该运算符将变量加 1。 c起初也叫”c with class”。通过名称表明&#xff0c; c是对 c 的扩展&#xff0c;因此 c是 c 语言的超集&#xff0c;这意味着 任何有效的 c 程序都是有效的 c程序。 c程…

《PySpark大数据分析实战》-11.Spark on YARN模式安装Hadoop

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

我的隐私计算学习——匿踪查询

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具&#xff0c;经由自己阅读后整理而成。 &#xff08;一&#xff09;PIR的介绍 ​ 匿踪查询&#xff0c;即隐私信息检索&#xff08;Private InformationRetrieval&#xff0c;PIR&#xff09;&#xff0c;是安全多方计算…

2012-12-12 下载ndk编译出so和可执行文件,放到android 真机运行,包含源码。

一、下载ndk链接NDK 下载 | Android NDK | Android Developers 二、解压ndk后得到下面的文件&#xff0c;里面包含ndk-build.cmd&#xff0c;这个是用来编译的。 三、Android.mk和C源码。完整源码下载路径https://download.csdn.net/download/qq_37858386/88622702 3.1 A…

MBA-论文说-历年考题参考

论说文∶根据下述材料&#xff0c;写-篇 700 字左右的论说文&#xff0c;题目自拟。 2015 孟子曾引用阳虎的话&#xff1a;"为富&#xff0c;不仁矣;为仁&#xff0c;不富矣&#xff0c;"&#xff08;《孟子滕文公上》&#xff09;这段话表明了古人对当时社会上为富…

k8s如何部署seata(分布式事务)?(第一篇)

k8s如何部署seata(分布式事务)&#xff1f; 官方传送门https://seata.io/zh-cn/ 快速入门SEATA Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站…

分布式配置中心SpringCloudConfig

1 简介 在分布式系统中&#xff0c;由于服务数量较多&#xff0c;配置文件分布在不同的微服务项目中&#xff0c;管理不方便。为了方便对配置文件的集中管理&#xff0c;需要使用分布式配置中心组件。在SpringCloud中&#xff0c;提供了SpringCloud Config&#xff0c;它支持将…

网络安全学习之信息泄露

一、背景以及泄露途径 通常我们会对数据进行备份&#xff0c;比如我们在发布网站的时候会对将要替换的版本进行备份。我们在对重要文件进行修改的时候我们也需要进行备份&#xff0c;如果我们对备份或缓存的文件或信息为做好管理&#xff0c;很容易就导致我们的敏感信息泄露。…