使用并查集解决的相关问题

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

作者: Grey

原文地址:使用并查集解决的相关问题

关于并查集的说明,见如下博客:

使用并查集处理集合的合并和查询问题

相关题目

本题的解题思路参考博客

使用DFS和并查集方法解决岛问题

主要思路

横纵坐标表示的是城市,因为城市是一样的,所以只需要遍历对角线上半区或者下半区即可,如果某个(i,j)位置是1,可以说明如下两个情况

第一,i这座城市和j这座城市可以做union操作。

第二,(j,i)位置一定也是1。

遍历完毕后,返回整个并查集中的集合数量即可。

完整代码

public static int findCircleNum(int[][] m) {int n = m.length;UF uf = new UF(n);for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {if (m[i][j] == 1) {uf.union(i, j);}}}return uf.setSize();}public static class UF {int[] parent;int[] help;int[] size;int sets;public UF(int n) {size = new int[n];parent = new int[n];help = new int[n];for (int i = 0; i < n; i++) {parent[i] = i;size[i] = 1;}sets = n;}public void union(int i, int j) {if (i == j) {return;}int p1 = find(i);int p2 = find(j);if (p2 != p1) {int size1 = size[p1];int size2 = size[p2];if (size1 > size2) {parent[p2] = p1;size[p1] += size2;} else {parent[p1] = p2;size[p2] += size1;}sets--;}}public int find(int i) {int hi = 0;while (i != parent[i]) {help[hi++] = i;i = parent[i];}for (int index = 0; index < hi; index++) {parent[help[index]] = i;}return i;}public int setSize() {return sets;}}

待更新…

更多

算法和数据结构笔记

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

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

相关文章

ABP官方文档翻译 3.1 实体

实体 实体类聚合根类 领域事件常规接口 审计软删除激活/失活实体实体改变事件IEntity接口实体是DDD(领域驱动设计)的核心概念之一。Eric Evans描述它为"An object that is not fundamentally defined by its attributes, but rather by a thread of continuity and identi…

目标检测之线段检测---lsd line segment detector

&#xff08;1&#xff09;线段检测应用背景 &#xff08;2&#xff09;线段检测原理简介 &#xff08;3&#xff09;线段检测实例 a line segment detector &#xff08;4&#xff09;hough 变换和 lsd 的区别 ---------------------author&#xff1a;pkf ------------------…

struts:file 提交给action后获取文件信息

参考&#xff1a; 1&#xff09;http://gemini.iteye.com/blog/67712 2&#xff09;http://bbs.csdn.net/topics/320228159 转载于:https://www.cnblogs.com/lpshou/archive/2013/01/15/2861581.html

利用Mac创建一个 IPv6 WIFI 热点

标签&#xff1a; iOSIPv6Create NAT64 NetWork创建NAT64网络2016-05-20 10:58 14156人阅读 评论(11) 收藏 举报分类&#xff1a;开发技巧&#xff08;8&#xff09; 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 苹果商店6月1日起&#xff0c;强…

SQL2000 MD5加密

原文:SQL2000 MD5加密 /***************************************************************************** * Name: T-SQL MD5算法实现 * Author: Rambo Qian * Create Date: 2003-04-10 * Last Modified by: Rambo Qian * Last Update Date: 2003-04-16 * Version: V1.…

经典电影

那些经典的电影&#xff0c;第一波&#xff01;&#xff01; 《怦然心动》&#xff0c;欧美电影——布莱斯全家搬到小镇&#xff0c;邻家女孩朱丽前来帮忙。她对他一见钟情&#xff0c;心愿是获得他的吻。两人是同班同学&#xff0c;她一直想方设法接近他&#xff0c;但是他避之…

go-zero 微服务实战系列(一、开篇)

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

大数据时代,怎么做全渠道的营销

大数据时代,怎么做全渠道的营销 营销在中国有很多变化&#xff0c;1978年之前主要是计划经济的时代&#xff0c;寻求政府的保护。1984年进入商品经济之后&#xff0c;中国企业通过大规模的扩大生产&#xff0c;扩大工厂得到生产效率。1992年进入市场经济之后&#xff0c;会涌现…

oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell

oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell <1&#xff0c;>仅安装数据库软件不配置数据库 ./x86oracle.sh /ruiy/ocr/DBSoftware/app/oracle /ruiy/ocr/DBSoftware/app/oraInventory /ruiy/ins_soft.rsp <2&#xff0c;>静默安装数据库软…

hdu 2048 神、上帝以及老天爷

题解&#xff1a; 本题主要思路是&#xff0c;算出i个人的总选择数a和以悲剧结尾的总选择数b&#xff0c;然后b/a&#xff0c;完成。属于递推题&#xff1a; 图中横杠代表人&#xff0c;竖杠代表签名。Ai代表i个人共有A[i]个选择&#xff0c;Bi起过度作用。因为最多有20人&…

探究Presto SQL引擎(3)-代码生成

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

Linux下Samba服务器的安装和配置

第一步&#xff1a;sudo apt-get install samba smbclient 安装samba服务器。 第二步&#xff1a;打开/etc/samba/smb.conf文件&#xff0c;在末尾添加下面的字段&#xff1a; [用户名] comment 用户名 path /home/用户名 writable yes 第三步&#xff1a;为samba服务器添加…

fatal error C1083:无法打开包括文件:“stdint.h”: No such file or directory解决方案

stdint.h文件是C99的标准头文件&#xff0c;默认情况下VC是不支持的&#xff0c;所以在使用过程中肯定会碰到 "No such file or directory"的问题。解决办法 1.从网盘上下载一个源码文件网盘链接 &#xff08;提取码&#xff1a;5c42&#xff09; 2.将内部包含的几个…

HTML文本框样式大全

输入框景背景透明&#xff1a;<input style"background:transparent;border:1px solid #ffffff"> 鼠标划过输入框&#xff0c;输入框背景色变色&#xff1a;<INPUT value"Type here" NAME"user_pass" TYPE"text" SIZE"2…

【学习笔记】计算几何

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

固态硬盘跟机械硬盘的区别

固态硬盘&#xff08;Solid State Disk或Solid State Drive&#xff09;&#xff0c;也称作电子硬盘或者固态电子盘&#xff0c;是由控制单元和固态存储单元&#xff08;DRAM或FLASH芯片&#xff09;组成的硬盘。固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的相同&a…

支持自动水平拆分的高性能分布式数据库TDSQL

随着互联网应用的广泛普及&#xff0c;海量数据的存储和访问成为系统设计的瓶颈问题。对于大型的互联网应用&#xff0c;每天几十亿的PV无疑对数据库造成了相当高的负载。给系统的稳定性和扩展性造成了极大的问题。通过数据的切分来提高系统整体性能&#xff0c;扩充系统整体容…

『忘了再学』Shell基础 — 27、AWK编程的介绍和基本使用

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

Cisco asa 5520 oid

一 Cisco asa CPU LOAD的oid1 5sec CPU 负载1.3.6.1.4.1.9.2.1.562 1min CPU 负载1.3.6.1.4.1.9.2.1.573 5min CPU 负载1.3.6.1.4.1.9.2.1.58 二 Cisco ASA memory的内存1 Processor pool Total:ciscoMemoryPoolUsed ciscoMemoryPoolUsed used: 1.3.6.1.4.1.9.9.48.1.1.…

一些有趣的B+树优化实验

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…