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

力扣-图论-3【算法学习day.53】

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


1.统计无向图中无法互相到达点对数

题目链接:2316. 统计无向图中无法互相到达点对数 - 力扣(LeetCode)

题面:

代码:

class Solution {public long countPairs(int n, int[][] edges) {UF uf = new UF(n);for (int[] edge : edges) {uf.union(edge[0], edge[1]);}int[] size = uf.size();// 记录所有分支的大小List<Integer> list = new ArrayList<>();Set<Integer> set = new HashSet<>();for (int i = 0; i < n; i++) {// 找到节点 i 的根节点// 注意:只有每个连通分量的根节点的 size[] 才可以代表该连通分量中的节点数int p = uf.find(i);// 已经加入 list 的节点直接跳过if (!set.contains(p)) list.add(size[p]);set.add(p);}long ans = 0;// 计算结果for (int sz : list) ans += (long) sz * (n - sz);// 注意 ➗ 2return ans / 2;}
}
/* ------------ 并查集模版 ------------ */
class UF {private int count;private int[] parent;private int[] size;public UF(int n) {this.count = n;parent = new int[n];size = new int[n];for (int i = 0; i < n; i++) {parent[i] = i;size[i] = 1;}}public void union(int p, int q) {int rootP = find(p);int rootQ = find(q);if (rootP == rootQ) return ;// 平衡性优化if (size[rootP] < size[rootQ]) {parent[rootP] = rootQ;size[rootQ] += size[rootP];} else {parent[rootQ] = rootP;size[rootP] += size[rootQ];}this.count--;}public boolean connected(int p, int q) {int rootP = find(p);int rootQ = find(q);return rootP == rootQ;}public int count() {return this.count;}// 增加了一个函数// 返回 size[]public int[] size() {return this.size;}public int find(int x) {// 路径压缩if (parent[x] != x) {parent[x] = find(parent[x]);}return parent[x];}
}

后言

上面是力扣图论专题,下一篇是其他的习题,希望有所帮助,一同进步,共勉!

相关文章:

力扣-图论-3【算法学习day.53】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非…...

Linux上的C语言编程实践

说明&#xff1a; 这是个人对该在Linux平台上的C语言学习网站笨办法学C上的每一个练习章节附加题的解析和回答 ex1: 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后运行它看看发生了什么。 vim ex1.c打开 ex1.c 文件。假如我们删除 return 0…...

芝法酱学习笔记(1.3)——SpringBoot+mybatis plus+atomikos实现多数据源事务

一、前言 1.1 业务需求 之前我们在讲解注册和登录的时候&#xff0c;有一个重要的技术点忽略了过去。那就是多数据源的事务问题。 按照我们的业务需求&#xff0c;monitor服务可能涉及同时对监控中心数据库和企业中心数据库进行操作&#xff0c;而我们希望这样的操作在一个事…...

【计算机网络】实验12:网际控制报文协议ICMP的应用

实验12 网际控制报文协议ICMP的应用 一、实验目的 验证ping命令和tracert命令的工作原理。 二、实验环境 Cisco Packet Tracer模拟器 三、实验过程 1.构建网络拓扑并进行信息标注&#xff0c;将所需要配置的IP地址写在对应的主机或者路由器旁边&#xff0c;如图1所示。 图…...

收缩 tempdb 数据库

1、 本文内容 注解使用 ALTER DATABASE 命令使用 DBCC SHRINKDATABASE 命令使用 DBCC SHRINKFILE 命令运行收缩操作时出现错误 8909 适用于&#xff1a; SQL ServerAzure SQL 托管实例 本文讨论可用于收缩 SQL Server 中 tempdb 数据库的各种方法。 可以使用下列任一方法来…...

kubesphere搭建 postgres15

创建configMap POSTGRES_PASSWORD数据库密码 PGDATA数据目录 创建【有状态副本集】工作负载 1.创建基本信息 2.容器组设置 配置环境变量 3.存储设置 完成之后点击下一步 配置服务 创建服务 配置基本信息 配置服务信息 外部访问选择nodePort&#xff0c;然后点击…...

解决npm问题用到的资源,错误原因和方法

资源&#xff1a; 1.node版本管理工具nvm: 下载地址&#xff1a;https://nvm.uihtm.com/nvm-1.1.12-setup.zip 使用方法&#xff1a;https://nvm.uihtm.com/ 2.node各版本&#xff1a; https://nodejs.org/en/about/previous-releases 3.nodejs: 下载地址&#xff1a;https://…...

【uni-app 微信小程序】新版本发布提示用户进行更新

知识准备 uni.getUpdateManager文档介绍 不支持APP与H5&#xff0c;所以在使用的时候要做好平台类型的判断&#xff0c;如何判断&#xff0c;参考条件编译处理多端差异 代码参考 export const updateApp () > {const updateManager uni.getUpdateManager()updateManag…...

Redis性能优化18招

Redis性能优化的18招 目录 前言选择合适的数据结构避免使用过大的key和value[使用Redis Pipeline](#使用Redis Pipeline)控制连接数量合理使用过期策略使用Redis集群充分利用内存优化使用Lua脚本监控与调优避免热点key使用压缩使用Geo位置功能控制数据的持久化尽量减少事务使…...

ElasticSearch 与向量数据库的结合实践:突破亿级大表查询瓶颈20241204

&#x1f4a1; ElasticSearch 与向量数据库的结合实践&#xff1a;突破亿级大表查询瓶颈 &#x1f4da; 引言 随着业务规模的不断扩大&#xff0c;传统关系型数据库在处理 亿级大表 时&#xff0c;性能瓶颈愈加凸显。关键词检索、模糊查询、多条件筛选等需求逐步升级&#xff…...

C#实现一个HttpClient集成通义千问-流式输出内容提取

返回对象处理 返回对象分析 根据流式返回的数据处理 内容对象 {"choices": [{"delta": { "content": "", "role": "assistant" },"index": 0,"logprobs": null,"finish_reason"…...

微信小程序后台搭建—node+mysql

想必大家都有一个困扰&#xff0c;想要用微信小程序作为前端&#xff0c;但是后端不知道如何用node连接微信小程序&#xff0c;我最近也一直困扰许久&#xff0c;所以我就想用node写后端接口在连接微信小程序&#xff0c;记录一下学习笔记 前言 前端:微信小程序 后端:nodeexp…...

断点续传+测试方法完整示例

因为看不懂网上的断点续传案例&#xff0c;而且又不能直接复制使用&#xff0c;干脆自己想想写了一个。 上传入参类&#xff1a; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProp…...

C# 中的静态构造函数和实例构造函数的区别

在C#中&#xff0c;静态构造函数和实例构造函数在类的初始化过程中扮演着不同的角色。下面我将详细介绍这两种构造函数的区别&#xff1a; 实例构造函数&#xff08;Instance Constructor&#xff09;&#xff1a; 实例构造函数用于初始化类的实例&#xff08;对象&#xff09;…...

如何在UI自动化测试中创建稳定的定位器?

如何在UI自动化测试中创建稳定的定位器&#xff1f; 前言1. 避免使用绝对路径2. 避免在定位器中使用索引3. 避免多个类名的定位器4. 避免动态和自动生成的ID5. 确保定位器唯一6. 处理隐藏元素的策略7. 谨慎使用基于文本的定位器8. 使用AI创建稳定的定位器 总结 前言 在自动化测…...

【5G】5G技术组件 5G Technology Components

5G的目标设置非常高&#xff0c;不仅在数据速率上要求达到20Gbps&#xff0c;在容量提升上要达到1000倍&#xff0c;还要为诸如大规模物联网&#xff08;IoT&#xff0c; Internet of Things&#xff09;和关键通信等新服务提供灵活的平台。这些高目标要求5G网络采用多种新技术…...

四十一:Web传递消息时的编码格式

在现代Web应用中&#xff0c;数据在客户端和服务器之间的传递往往需要经过特定的编码方式。不同类型的数据&#xff08;如文本、图像、文件等&#xff09;需要用不同的编码格式进行表示&#xff0c;以确保信息的准确性与安全性。本文将介绍Web传递消息时常用的几种编码格式&…...

【细如狗】记录一次使用MySQL的Binlog进行数据回滚的完整流程

文章目录 1 事情起因2 解决思路3 利用binlog进行数据回滚 3.1 确认是否启用Binlog日志3.2 确认是否有binlog文件3.3 找到误操作的时间范围3.4 登录MySQL服务器查找binlog文件 3.4.1 查询binlog文件路径3.4.2 找到binlog文件3.4.3 确认误操作被存储在哪一份binlog文件中 3.5 查…...

什么是云原生数据库 PolarDB?

云原生数据库 PolarDB 是阿里云推出的一款高性能、兼容性强、弹性灵活的关系型数据库产品。它基于云原生架构设计&#xff0c;结合分布式存储和计算分离的技术优势&#xff0c;为用户提供强大的计算能力、卓越的可靠性以及高性价比的数据库解决方案。PolarDB 适合各种业务场景&…...

Kafka Stream实战教程

Kafka Stream实战教程 1. Kafka Streams 基础入门 1.1 什么是 Kafka Streams Kafka Streams 是 Kafka 生态中用于 处理实时流数据 的一款轻量级流处理库。它利用 Kafka 作为数据来源和数据输出&#xff0c;可以让开发者轻松地对实时数据进行处理&#xff0c;比如计数、聚合、…...

AI时代Clean Code新标准(DeepSeek R1实测验证版):92.7%可维护性提升背后的11个关键断点

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI时代Clean Code范式迁移的必然性 当大语言模型能自动生成函数、修复漏洞、甚至重构整包逻辑时&#xff0c;“可读性优先”的传统Clean Code原则正遭遇结构性挑战。人类开发者编写的代码不再唯一面向…...

慕尼黑电子展:洞察汽车电子、工业物联网与功率半导体技术趋势

1. 从慕尼黑看全球电子产业&#xff1a;一场技术与商业的“双向奔赴”又到了双数年的十一月&#xff0c;全球电子工程师和产业领袖的目光&#xff0c;不约而同地再次聚焦于德国慕尼黑。没错&#xff0c;Electronica——这个被誉为全球电子元器件行业“晴雨表”的顶级盛会&#…...

WarcraftHelper魔兽争霸III优化工具:让你的经典游戏重获新生

WarcraftHelper魔兽争霸III优化工具&#xff1a;让你的经典游戏重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为《魔兽争霸III》…...

.NET 10 + CQRS + MediatR 一个跨平台文档管理系统

前言基于 .NET 10 打造的跨平台文档管理系统&#xff0c;才真正感受到了什么叫"专业级"的开源力量。它不仅仅是一个简单的文件存储工具&#xff0c;更是一个集成了 CQRS 架构、实时通信、版本控制等高级特性的现代化应用示例。项目介绍一款标准的前后端分离项目&…...

AI赋能医院物流:基于PDCA循环的智能供应链韧性提升实践

1. 项目概述&#xff1a;当医院物流遇上AI与PDCA医院物流&#xff0c;听起来可能有点“幕后”&#xff0c;但它绝对是现代医疗体系顺畅运转的“大动脉”。从高值耗材、药品、检验试剂&#xff0c;到被服布草、医疗废物&#xff0c;甚至是一日三餐&#xff0c;这条链条上任何一个…...

AI计算前沿:从存内计算到神经形态芯片的硬件革命

1. 从CES的喧嚣到AI研究的深水区&#xff1a;一次认知的转向每年一月的拉斯维加斯&#xff0c;消费电子展&#xff08;CES&#xff09;总是充斥着最炫目的灯光、最酷炫的 gadgets 和最大声的营销口号。作为一名长期跟踪半导体与系统设计的行业观察者&#xff0c;我和我的搭档—…...

别再死记硬背了!用MIDI键盘和DAW软件(如FL Studio/Cubase)5分钟搞懂钢琴音区划分

别再死记硬背了&#xff01;用MIDI键盘和DAW软件5分钟搞懂钢琴音区划分 第一次打开DAW的钢琴卷帘窗时&#xff0c;那些密密麻麻的C3、C4编号是否让你一头雾水&#xff1f;作为从乐队吉他手转型音乐制作的过来人&#xff0c;我完全理解这种困惑。传统教材里"小字组"&q…...

LoRa模块信号弱?可能是你的“射频快递”堵车了:深入Sx1262前端电路的信号处理流水线

LoRa模块信号弱&#xff1f;可能是你的“射频快递”堵车了&#xff1a;深入Sx1262前端电路的信号处理流水线 想象一下&#xff0c;你精心打包的快递包裹在运输途中被随意堆放、地址模糊不清&#xff0c;最终导致收件人无法正常签收——这正是许多LoRa模块信号问题的真实写照。当…...

【2026实测】论文AI率从81%降至个位数?8款降AIGC工具深度横测

内容ai率检测数值太高&#xff0c;不得不熬夜改了一遍又一遍&#xff0c;润色到想吐&#xff0c;结果检测报告上数字还是不尽人意&#xff0c;截止日期越逼越近&#xff0c;真的是没办法了。 我花了整整三天&#xff0c;把2026全网热门的几十款降AI工具通通测了个遍&#xff0…...

心灵鸡汤01 - 人生九不争

一、跟父母&#xff0c;不争口舌&#xff1b; 二、跟朋友&#xff0c;不争面子&#xff1b; 三、跟领导&#xff0c;不争高低&#xff1b; 四、跟小人&#xff0c;不争道理&#xff1b; 五、跟伴侣&#xff0c;不争对错&#xff1b; 六、跟亲戚&#xff0c;不争穷富&#xff1b…...