文章目录

  • 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. 无向图中连通分量的数目(并查集)相关推荐

  1. leetcode323. 无向图中连通分量的数目

    给定编号从 0 到 n-1 的 n 个节点和一个无向边列表(每条边都是一对节点),请编写一个函数来计算无向图中连通分量的数目. 示例 1: 输入: n = 5 和 edges = [[0, 1], [ ...

  2. LeetCode 990. 等式方程的可满足性(并查集)

    1. 题目 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!= ...

  3. hdoj 3018 Ant Trip(无向图欧拉路||一笔画+并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 思路分析:题目可以看做一笔画问题,求最少画多少笔可以把所有的边画一次并且只画一次: 首先可以求出 ...

  4. leetcode 1202. 交换字符串中的元素(并查集)

    给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始). 你可以 任意多次交换 在 pairs 中任意 ...

  5. leetcode 959. 由斜杠划分区域(并查集)

    在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /.\ 或空格构成.这些字符会将方块划分为一些共边的区域. (请注意,反斜杠字符是转义的,因此 \ 用 &quo ...

  6. 统计有几个连通分量--hdu 1213 并查集

    点击打开链接 题意:T组测试用例,输入n,m,输入m对数x,y(x不等于y),表示x,y在同一个连通分量里面.输出连通分量的个数. 连通分量的个数: 1.可以求出一共有多少个根节点(即fa[i]==- ...

  7. leetcode 1631. 最小体力消耗路径(并查集)

    你准备参加一场远足活动.给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度.一开始你在最左上角的格子 ...

  8. 无向图的连通分支数(并查集)

    目录 这是牛客网上题号为 KY268 的一道题 题目描述:该题的目的是要你统计图的连通分支数. 输入描述:每个输入文件包含若干行,每行两个整数 i, j,表示节点 i 和 j 之间存在一条边. 输出描 ...

  9. LeetCode 面试题 17.07婴儿名字 (并查集+字符串处理+字典序)

    婴儿名字 1600ms,吐了 ,代码看似很长.但主要花在了字符串处理上. string s; s.substring(int idx,int len); //去除子串 stoi(string s); ...

最新文章

  1. matlab计算运行时间方法
  2. 11.2 uptime:显示系统的运行时间及负载
  3. 使用一阶微分对图像锐化
  4. python爬虫的用途_python爬虫用途
  5. Flexslider图片轮播、文字图片相结合滑动切换效果
  6. 解决mapper映射文件不发布问题
  7. 注意一些坑,从app跳转到qq聊天界面。
  8. 揭开PC-Lint9的神秘面纱
  9. JAVA并发之多线程基础(4)
  10. Linux使用进程id跟踪程序,使用linux的pidof命令返回运行程序的进程ID
  11. 如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor
  12. Windows套接字I/O模型(3) -- WSAAsyncSelect模型
  13. 苹果gamecenter未能连接服务器,win7系统GameCenter无法连接服务器的解决方法
  14. python股票量化交易_量化交易之路:用Python做股票量化分析 (阿布著) 完整pdf扫描版[103MB]...
  15. ant app 心电监测_电话传输心电图监测在心血管疾病及远程医疗中的应用
  16. 基于matlab双曲正割脉冲,光纤内脉冲信号传输仿真(包含matlab程序)
  17. AWD准备的一些脚本和工具及其使用方法
  18. 怎样用手机将照片清晰度设置300dpi?
  19. ICSE (2022). Nessie的阅读记录
  20. ORACLE各种常见java.sql.SQLException归纳

热门文章

  1. mysql mtop_mysqlmtop2.2运行出错
  2. dual mysql 获取序列_如何使用mysql 一次查询多个序列
  3. 坦克大战系列6-API常用函数说明2
  4. Node.js mimimn图片批量下载爬虫 1.00
  5. bzoj4639 博士的选取器
  6. 2017模拟赛:还款计算
  7. 290. Word Pattern
  8. 八皇后解法(回溯法)
  9. POJ2503 Babelfish(二分)
  10. MySQL5.7 常用系统表大全