leetcode 547.省份数量

embedded/2024/10/21 5:36:41/

思路:dfs

或者这道题用bfs也是可以的。

这道题有点迷惑性,这里的数组给的是无向图的数组,而并不是地图,这里需要着重注意一下。

而后,这里的状态数组st没必要是二维的,我们并不会去遍历所给的数组,这是没有意义的,我们只需要从这个数组中提取出来哪些城市有连接即可。

剩下的就是连通块的思想了。连通块前面已经写过很多了,大家可以去前面的博客看一下。

对于每一个编号的城市,在遍历的时候都进行标记,然后再去判断和其他城市有没有联系;如果有,就换到下一个城市里面,继续dfs;没有的话继续循环,这样就遍历完一个“省份”了,也就是一个连通块,不要忘记计数。

上代码:


class Solution {int []st=new int[210];int n;public void dfs(int x,int[][]s){if(x>=n)return;for(int i=0;i<n;i++){if(st[i]==0&&s[x][i]==1){st[i]=1;dfs(i,s);}}}public int findCircleNum(int[][] isConnected) {n=isConnected.length;int counts=0;for(int i=0;i<n;i++){if(st[i]==0){st[i]=1;dfs(i,isConnected);counts++;}}return counts;}
}


http://www.ppmy.cn/embedded/37225.html

相关文章

如何根据索引删除数组中的元素,并保证删除的正确性

使用 splice() 方法来删除这些索引处的数据 var array [1, 2, 3, 4, 5]; var indexesToDelete [1, 3]; // 需要删除的索引// 将需要删除的索引按照从大到小的顺序排序&#xff0c;以避免删除元素后索引发生变化 indexesToDelete.sort((a, b) > b - a);// 遍历需要删除的索…

计算机行业AI前沿报告:混合专家模型技术(MoE)

今天分享的是****AI系列深度研究报告&#xff1a;《计算机行业AI前沿报告&#xff1a;混合专家模型技术(MoE)》。&#xff08;报告出品方&#xff1a;中信建投证券&#xff09; 精选内容来源公众&#xff1a;见鹿报告 报告共计: 24页 [报告内容摘要如下] **•核心观点&…

JavaScript百炼成仙自学笔记——2

一、循环遍历&#xff1a; 方式一 for(var i0;i<10;i){console.log(i); }方式二 var i 0; while(i < 100){console.log(i);i; }细看代码就是 先定义变量i&#xff0c;再执行{}中的代码&#xff0c;最后改循环变量的值 二、遍历 什么事遍历&#xff1f; 什么时候会用…

UE5 UMG

锚点 切换面板 先将制作好的面板放在屏幕外面&#xff0c;然后点击播放动画按钮利用位移动画将panel移动到屏幕中间 背包 创建物品的结构体&#xff0c;储存物品的信息 创建自定义事件&#xff0c;初始化背包格子的图片显示&#xff0c;然后文本直接绑定就可以&#xff0c;可…

资料总结分享:SAM,bam,bed文件格式

目录 sam文件 bam文件 bed 文件 sam文件 SAM&#xff08;Sequence Alignment/Map&#xff09;文件是存储测序数据比对结果的一种常见格式。SAM文件通常用于存储DNA或RNA测序数据在参考基因组上的比对结果。 SAM文件由多行文本组成&#xff0c;每一行代表一个比对结果。SAM文…

RustGUI学习(iced)之小部件(七):如何使用图像image部件来显示图片?

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述 这是本专栏的第七篇,主要讲述图像Image部件的使用,会结合实例…

webpack4和webpack5区别3---缓存

webpack4缓存 使用打包的目的是提升项目启动速度&#xff0c;提升开发体验&#xff0c;webpack的打包方式就是把项目内全部文件都走一遍loader和babel处理&#xff0c;所以项目文件内容越来越多&#xff0c;启动的时间就越来越长&#xff0c;随随便便就 run 一分钟。 webpack4 …

安装docker20.10.18版本步骤

安装docker20.10.18版本步骤 准备低版本安装包 #安装20.10.18版本的dockercd /opt #切换目录#上传需要的docker20.10.18.zip安装包unzip docker20.10.18.zip #解压cd docker20.10.18/ #切换目录yum install -y *.rpm #安装systemctl enable --now docker.service #开机自启并…