每日一题 城市群的数量

题目解析

城市群数量_牛客题霸_牛客网

当解决这个问题时,首先需要理解题目要求。题目中给出了一个城市之间的邻接矩阵,矩阵中的元素表示城市之间是否直接相连。如果两个城市直接相连,或者通过其他城市间接相连,它们就属于同一个城市群。

思路分析

为了解决这个问题,图的遍历可以使用深度优先搜索(DFS)或者广度优先搜索(BFS)来遍历城市,并标记城市所属的城市群。具体步骤如下:

  1. 创建一个布尔类型的数组 visited,用于标记每个城市是否被访问过。
  2. 遍历所有城市,对于每个未被访问过的城市,进行深度优先搜索或者广度优先搜索,并标记所有与该城市直接或间接相连的城市为同一个城市群。
  3. 统计不同的城市群数量。

 

代码实现 
 

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param m int整型ArrayList<ArrayList<>>* @return int整型*/int n,count;boolean[] flags;ArrayList<ArrayList<Integer>> lists;public int citys (ArrayList<ArrayList<Integer>> lists) {this.lists = lists;if (lists == null || lists.isEmpty()) {return 0;}n = lists.size();flags = new boolean[n];for (int i = 0; i < n; i++) {if (!flags[i]) { //把所有没被标记的都遍历一遍count++;dfs(i);}}return count;}private void dfs(int pos) {flags[pos] = true;//已经搜索过了for (int i = 0; i < n; i++) {//搜索出所有与pos相邻的房子if (!flags[i] && lists.get(i).get(pos) == 1) {dfs(i);}}}
}

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

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

相关文章

算法学习笔记(匈牙利算法)

匈牙利算法可以求解二分图的最大匹配问题&#xff08;二分图&#xff1a;如果无向图 G ( V , E ) G (V, E) G(V,E)的所有点可以分为两个集合 V 1 、 V 2 V_1、V_2 V1​、V2​&#xff0c;所有的边都在 V 1 V_1 V1​和 V 2 V_2 V2​之间&#xff0c;而 V 1 V_1 V1​或 V 2 V_2…

深入理解Python的类,实例和type函数

问题起源&#xff1a; class t():pass s1 t() s2 type("Student2",(),{}) isinstance(s1, type), isinstance(s2, type)为什么第一个是false&#xff0c;第二个是true呢 根因定位&#xff1a; 在Python中&#xff0c;一切皆对象&#xff0c;类是对象&#xff0c…

nacos在没有指定数据源的情况下默认使用什么数据库?

在没有特别指定数据源的情况下&#xff0c;Nacos 默认使用内嵌的数据库 Derby 来存储其数据。Derby 是一个轻量级的、基于 Java 的数据库管理系统&#xff0c;适合于开发和测试环境&#xff0c;因为它简单易部署且无需额外的数据库服务器。然而&#xff0c;对于生产环境&#x…

使用ORM快速获取业务对象列表

通常在实际开发中&#xff0c;业务对象的信息是需要来自多个数据表的。 我们如果想要获取这个业务对象&#xff0c;就要先查询数据表&#xff0c;再把查询到的数据依次循环&#xff0c;组合转换封装成业务要使用的对象类型列表。 如果使用了ORM&#xff0c;那么这个过程就可以简…

Stability AI 推出 Stable Artisan,终于可以在Discord上使用Stable Diffusion了!

Stable Diffusion 社区最常见的要求之一是能够直接在 Discord 上使用他们的模型。近期&#xff0c;Stability AI 推出 Stable Artisan&#xff0c;这个需求终于被实现了。 Stable Artisan 支持在 Discord 上生成媒体&#xff0c;由 Stability AI 的尖端图像和视频模型 Stable D…

基于Springboot的实习生管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的实习生管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&a…

mysql group by使用方法实例讲解

MySQL中GROUP BY语句用于对某个或某些字段查询分组&#xff0c;并返回重复记录的第一条&#xff0c;本文章通过实例向大家介绍mysql group by使用方法和需要注意的地方&#xff0c;感兴趣的朋友可以参考一下。 现在有这样一个数据表book idfirst_namelast_namecityage1JasonM…

知乎知+广告推广该如何做?怎么收费?

知乎作为一个汇聚高质量用户群体的知识分享平台&#xff0c;成为了众多品牌和产品推广的优选之地。特别是知乎的“知”广告推广服务&#xff0c;以其精准定向、内容原生的特点&#xff0c;深受广告主青睐。 一、知乎知广告推广基础 1. 什么是知乎知&#xff1f; 知是知乎官方…

C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现

标准库中的string&#xff1a;C初阶学习第六弹——string&#xff08;1&#xff09;——标准库中的string类-CSDN博客 前言&#xff1a; 在前面我们已经学习了如何使用标准库中的string类&#xff0c;但作为一个合格的程序员&#xff0c;我们不仅要会用&#xff0c;还要知道如…

C++类和对象下——实现日期类

前言 在学习了类和对象的六大成员函数后&#xff0c;为了巩固我们学习的知识可以手写一个日期类来帮助我们理解类和对象&#xff0c;加深对于其的了解。 默认函数 构造函数 既然是写类和对象&#xff0c;我们首先就要定义一个类&#xff0c;然后根据实际需要来加入类的数据与函…

AI编程工具为什么选github copilot?

Github Copilot 是一个奇迹 它的竞争对手&#xff08;Amazon, Google, Meta, 腾讯&#xff09;都是免费的&#xff0c;但每月10-20美元的Github Copilot市场占有率最高。 1、2021年6月上线&#xff0c;比ChatGPT早近一年半 2、GitHub统计&#xff1a; 88%的用户获得效率提升平…

element ui的确认提示框文字样式修改

修改确认提示框文字样式修改&#xff0c;使用message属性修改&#xff1a; 例&#xff1a; js代码&#xff1a; this.$msgbox({title: 确定要删除吗?,message: this.$createElement(p, null, [this.$createElement(span, { style: color: red }, 该素材一旦删除&#xff0c;…

Spring Boot日志

目录 一、日志概述 1、为什么要学习日志&#xff1f; 2、日志的用途 &#xff08;1&#xff09;系统监控 &#xff08;2&#xff09;数据采集 &#xff08;3&#xff09;日志审计 二、日志使用 1、打印日志 &#xff08;1&#xff09;在程序中得到日志对象 &#xf…

QNX SLM介绍

QNX SLM SLM是Qnx中用来加载Application的组件&#xff0c;它可以监控Application行为&#xff08;比如异常退出时重新Application拉起&#xff09;、控制Application间的启动时序。 QNX的SLM与Android RC文件类似。 下面摘自QNX官网介绍 System launch and monitor: launch c…

Redis日常维护流程及技巧:确保稳定性与性能

目录 一、监控和报警设置 1.实时监控&#xff1a;洞察Redis的脉搏 &#xff08;1&#xff09;. 资源使用监控 &#xff08;2&#xff09;. 数据访问模式监控 &#xff08;3&#xff09;. 持久化监控 &#xff08;4&#xff09;. 客户端连接 2.报警机制&#xff1a;快速响…

标准Modbus TCP双网口开关量模块

M140E以太网远程I/O无线数据采集模块是一款工业级、隔离设计、高可靠性、高稳定性和高精度数据采集模块&#xff0c;嵌入式32位高性能微处理器MCU&#xff0c;集成2路工业10/100M自适应以太网模块里面。提供多种I/O&#xff0c;支持标准Modbus TCP&#xff0c;可集成到SCADA、O…

Spring STOMP-连接到消息代理

STOMP 代理中继维护一个与消息代理的“系统”TCP 连接。这个连接仅用于来自服务器端应用程序的消息&#xff0c;不用于接收消息。您可以为此连接配置STOMP凭据&#xff08;即STOMP帧的login和passcode头部&#xff09;。这在XML命名空间和Java配置中都以systemLogin和systemPas…

CentOs搭建Kubernetes集群

kubeadm minikube 还是太“迷你”了&#xff0c;方便的同时也隐藏了很多细节&#xff0c;离真正生产环境里的计算集群有一些差距&#xff0c;毕竟许多需求、任务只有在多节点的大集群里才能够遇到&#xff0c;相比起来&#xff0c;minikube 真的只能算是一个“玩具”。 Kuber…

spring基础使用(案例)

基于xml使用&#xff1a; 准备&#xff1a; 1.Dao层&#xff08;接口&#xff09;&#xff1a; public interface UserDao {public void save(); } 1.1 Dao层&#xff08;实现类&#xff09;&#xff1a; public class UserDaoIim implements UserDao {Overridepublic vo…