古蔺中国建设银行网站python如何做简单的网站

张小明 2026/1/9 23:51:56
古蔺中国建设银行网站,python如何做简单的网站,wordpress 知更鸟 网格,上海市建设工程咨询行业协会官网什么是并查集 并查集是一种用于处理不相交集合的数据结构#xff0c;主要支持两种操作#xff1a; Union#xff08;合并#xff09;#xff1a;将两个集合合并为一个集合Find#xff08;查找#xff09;#xff1a;判断某个元素属于哪个集合 并查集特别适合解决连通性…什么是并查集并查集是一种用于处理不相交集合的数据结构主要支持两种操作Union合并将两个集合合并为一个集合Find查找判断某个元素属于哪个集合并查集特别适合解决连通性问题例如判断两个元素是否在同一个集合中。并查集的基本实现核心数据结构typeUnionFindstruct{parent[]int// parent[i] 表示元素 i 的父节点rank[]int// rank[i] 表示以 i 为根的树的高度用于按秩合并}三个核心操作1. 初始化每个元素初始时都是独立的集合自己是自己的父节点。funcNewUnionFind(nint)*UnionFind{parent:make([]int,n)rank:make([]int,n)fori:0;in;i{parent[i]i// 初始时自己是自己的父节点rank[i]1}returnUnionFind{parent:parent,rank:rank}}2. Find查找- 路径压缩优化查找元素的根节点同时进行路径压缩将路径上的所有节点直接连到根节点。func(uf*UnionFind)Find(xint)int{ifuf.parent[x]!x{uf.parent[x]uf.Find(uf.parent[x])// 路径压缩}returnuf.parent[x]}路径压缩的作用将树的高度降低后续操作更快。时间复杂度接近 O(1)。3. Union合并- 按秩合并优化将两个集合合并优先将高度小的树合并到高度大的树下。func(uf*UnionFind)Union(x,yint){rootX:uf.Find(x)rootY:uf.Find(y)ifrootXrootY{return// 已经在同一集合}// 按秩合并将高度小的树连到高度大的树下ifuf.rank[rootX]uf.rank[rootY]{uf.parent[rootX]rootY}elseifuf.rank[rootX]uf.rank[rootY]{uf.parent[rootY]rootX}else{uf.parent[rootY]rootX uf.rank[rootX]}}按秩合并的作用避免树退化成链表保持树的平衡。辅助方法// 判断两个元素是否连通func(uf*UnionFind)IsConnected(x,yint)bool{returnuf.Find(x)uf.Find(y)}// 重置节点某些场景需要func(uf*UnionFind)Reset(xint){uf.parent[x]x uf.rank[x]1}并查集的应用场景1. 判断连通性网络连接朋友圈问题岛屿数量2. 动态连通性判断图中是否存在环最小生成树Kruskal 算法3. 分组/聚类账户合并社交网络分析4. 带时间维度的连通性本题需要按时间顺序处理可能需要回退/重置操作并查集常见套路套路1基础连通性判断uf:NewUnionFind(n)// 建立连接uf.Union(x,y)// 判断连通ifuf.IsConnected(a,b){// 处理逻辑}套路2统计集合数量通过统计有多少个根节点来确定集合数量。count:0fori:0;in;i{ifuf.Find(i)i{count}}套路3带权并查集维护节点间的关系距离、差值等。套路4时间维度处理按时间排序分时间段处理需要时进行回退复杂度分析使用路径压缩和按秩合并优化后单次操作时间复杂度O(α(n))α 是阿克曼函数的反函数增长极慢实际可看作 O(1)空间复杂度O(n)实战案例LeetCode 2092. 找出知晓秘密的所有专家题目描述给定 n 个专家编号 0 到 n-1一个会议列表 meetings[i] [xi, yi, timei]以及初始知道秘密的 firstPerson。专家 0 在时间 0 时知道秘密并分享给 firstPerson每次会议时知道秘密的专家会分享给对方同一时间的秘密传播是瞬时的返回所有最终知道秘密的专家列表解题分析这是一道带时间维度的并查集问题体现了套路4的应用。核心难点时间维度需要按时间顺序处理会议同时刻处理同一时刻的会议必须一起处理瞬时传播回退机制如果某人没有连通到专家0需要撤销其加入解题步骤初始化将专家 0 和 firstPerson 合并到同一集合按时间排序将所有会议按时间升序排列分时间段处理收集同一时刻的所有会议对这些会议进行 Union 操作检查参会者是否与专家 0 连通关键不连通的参会者需要 Reset回退收集结果统计所有与专家 0 连通的专家代码实现funcfindAllPeople(nint,meetings[][]int,firstPersonint)[]int{uf:NewUnionFind(n)uf.Union(0,firstPerson)// 按时间排序sort.Slice(meetings,func(i,jint)bool{returnmeetings[i][2]meetings[j][2]})// 按时间分组处理i:0forilen(meetings){currentTime:meetings[i][2]peopleInMeetings:make(map[int]bool)// 处理同一时间的所有会议j:iforjlen(meetings)meetings[j][2]currentTime{x,y:meetings[j][0],meetings[j][1]uf.Union(x,y)peopleInMeetings[x]truepeopleInMeetings[y]truej}// 回退不连通的参会者需要重置forperson:rangepeopleInMeetings{if!uf.IsConnected(person,0){uf.Reset(person)}}ij}// 收集结果result:make([]int,0)fori:0;in;i{ifuf.IsConnected(i,0){resultappend(result,i)}}returnresult}复杂度分析时间复杂度O(m log m m α(n))排序O(m log m)并查集操作O(m α(n)) ≈ O(m)空间复杂度O(n)关键技巧总结时间分组同一时间的操作必须批量处理回退机制使用 Reset 撤销不合法的合并连通性判断只保留与源点连通的节点总结并查集是处理动态连通性问题的利器掌握以下要点✅基本操作Find路径压缩 Union按秩合并✅常见套路连通性判断、集合统计、时间维度处理✅优化技巧路径压缩 按秩合并时间复杂度接近 O(1)✅灵活应用根据题目需求添加 Reset、权重等扩展功能通过这道题目我们学会了如何处理带时间维度的并查集问题这是并查集高级应用的典型场景。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

兰州网站建设ulezhi旅游网网站建设

Excalidraw AI平台支持导出带水印的商业用途图 在远程办公成为常态、跨团队协作日益频繁的今天,如何快速、清晰又安全地表达复杂的技术逻辑和业务流程,成了每个知识型组织面临的现实挑战。传统的绘图工具虽然功能齐全,但往往风格呆板、操作繁…

张小明 2026/1/1 9:46:05 网站建设

做行业门户网站要投资多少钱简单的管理系统有哪些

Wan2.2-T2V-5B如何避免生成闪烁画面?稳定性增强策略 你有没有遇到过这种情况:满怀期待地输入一段“一只狐狸在雪地里奔跑”的提示,点击生成,结果出来的视频……每帧都像在“抽搐”?颜色忽明忽暗,轮廓跳来跳…

张小明 2026/1/1 0:30:06 网站建设

动漫网站设计东莞建网站公司平台

ViGEmBus虚拟手柄驱动:从内核到应用的完整技术解析 【免费下载链接】ViGEmBus 项目地址: https://gitcode.com/gh_mirrors/vig/ViGEmBus 在游戏外设兼容性领域,一个看似简单的问题困扰着无数玩家和开发者:如何让非标准手柄在Windows系…

张小明 2025/12/31 21:53:46 网站建设

音乐网站怎么做精准关键词东莞 外贸网站 建站

引言 本文将通过逐步操作、详细解释、实战验证的方式,确保你完全掌握 Kubernetes RBAC 的每一个概念和操作。每个例子都包含完整的命令、YAML 文件和验证步骤。 第一部分:基础环境准备 1.1 创建测试命名空间 首先,我们创建三个命名空间来模拟不同的环境: # 创建命名空间…

张小明 2026/1/1 5:41:36 网站建设

深圳哪家做网站好视频弹幕网站怎么做的

鼠标手势革命:3分钟开启高效操作新时代 🚀 【免费下载链接】MouseInc.Settings MouseInc设置界面 项目地址: https://gitcode.com/gh_mirrors/mo/MouseInc.Settings 还在为重复的鼠标点击感到疲惫吗?想要通过简单的鼠标移动就能完成复…

张小明 2026/1/4 9:47:02 网站建设

中山精品网站建设方案网站与微信对接

网络目标发现与枚举技术全解析 1. 目标发现工具 在网络安全领域,目标发现是至关重要的一步,它能帮助我们识别目标机器并了解其使用的操作系统。以下介绍一些常用的目标发现工具。 1.1 IPv6 相关工具 ICMPv6 邻居发现协议 :该协议允许 IPv6 主机发现本地网络中其他 IPv6…

张小明 2026/1/7 21:47:40 网站建设