LeetCode 323. 无向图中连通分量的数目(并查集)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给定编号从 0 到 n-1 的 n 个节点和一个无向边列表(每条边都是一对节点),请编写一个函数来计算无向图中连通分量的数目。
示例 1:
输入: n = 5 和 edges = [[0, 1], [1, 2], [3, 4]]0 3| |1 --- 2 4 输出: 2示例 2:
输入: n = 5 和 edges = [[0, 1], [1, 2], [2, 3], [3, 4]]0 4| |1 --- 2 --- 3输出: 1注意:
你可以假设在 edges 中不会出现重复的边。
而且由于所以的边都是无向边,[0, 1] 与 [1, 0] 相同,所以它们不会同时在 edges 中出现。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-connected-components-in-an-undirected-graph 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
参考:并查集
class dsu
{public:vector<int> f;dsu(int n){f = vector<int>(n);for(int i = 0; i < n; ++i)f[i] = i;}void merge(int a, int b){int fa = find(a);int fb = find(b);f[fa] = fb;}int find(int a){int origin = a;while(a != f[a])a = f[a];return f[origin] = a;}int countUni(){int count = 0;for(int i = 0; i < f.size(); ++i){if(i == find(i))count++;}return count;}
};
class Solution {public:int countComponents(int n, vector<vector<int>>& edges) {dsu u(n);for(auto& e : edges)u.merge(e[0],e[1]);return u.countUni();}
};
32 ms 10.9 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 323. 无向图中连通分量的数目(并查集)相关推荐
- leetcode323. 无向图中连通分量的数目
给定编号从 0 到 n-1 的 n 个节点和一个无向边列表(每条边都是一对节点),请编写一个函数来计算无向图中连通分量的数目. 示例 1: 输入: n = 5 和 edges = [[0, 1], [ ...
- LeetCode 990. 等式方程的可满足性(并查集)
1. 题目 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!= ...
- hdoj 3018 Ant Trip(无向图欧拉路||一笔画+并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 思路分析:题目可以看做一笔画问题,求最少画多少笔可以把所有的边画一次并且只画一次: 首先可以求出 ...
- leetcode 1202. 交换字符串中的元素(并查集)
给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始). 你可以 任意多次交换 在 pairs 中任意 ...
- leetcode 959. 由斜杠划分区域(并查集)
在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /.\ 或空格构成.这些字符会将方块划分为一些共边的区域. (请注意,反斜杠字符是转义的,因此 \ 用 &quo ...
- 统计有几个连通分量--hdu 1213 并查集
点击打开链接 题意:T组测试用例,输入n,m,输入m对数x,y(x不等于y),表示x,y在同一个连通分量里面.输出连通分量的个数. 连通分量的个数: 1.可以求出一共有多少个根节点(即fa[i]==- ...
- leetcode 1631. 最小体力消耗路径(并查集)
你准备参加一场远足活动.给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度.一开始你在最左上角的格子 ...
- 无向图的连通分支数(并查集)
目录 这是牛客网上题号为 KY268 的一道题 题目描述:该题的目的是要你统计图的连通分支数. 输入描述:每个输入文件包含若干行,每行两个整数 i, j,表示节点 i 和 j 之间存在一条边. 输出描 ...
- LeetCode 面试题 17.07婴儿名字 (并查集+字符串处理+字典序)
婴儿名字 1600ms,吐了 ,代码看似很长.但主要花在了字符串处理上. string s; s.substring(int idx,int len); //去除子串 stoi(string s); ...
最新文章
- matlab计算运行时间方法
- 11.2 uptime:显示系统的运行时间及负载
- 使用一阶微分对图像锐化
- python爬虫的用途_python爬虫用途
- Flexslider图片轮播、文字图片相结合滑动切换效果
- 解决mapper映射文件不发布问题
- 注意一些坑,从app跳转到qq聊天界面。
- 揭开PC-Lint9的神秘面纱
- JAVA并发之多线程基础(4)
- Linux使用进程id跟踪程序,使用linux的pidof命令返回运行程序的进程ID
- 如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor
- Windows套接字I/O模型(3) -- WSAAsyncSelect模型
- 苹果gamecenter未能连接服务器,win7系统GameCenter无法连接服务器的解决方法
- python股票量化交易_量化交易之路:用Python做股票量化分析 (阿布著) 完整pdf扫描版[103MB]...
- ant app 心电监测_电话传输心电图监测在心血管疾病及远程医疗中的应用
- 基于matlab双曲正割脉冲,光纤内脉冲信号传输仿真(包含matlab程序)
- AWD准备的一些脚本和工具及其使用方法
- 怎样用手机将照片清晰度设置300dpi?
- ICSE (2022). Nessie的阅读记录
- ORACLE各种常见java.sql.SQLException归纳