给定编号从 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 中出现。

思路:并查集,一直合并,最后查有几个根即可

class Solution {int[] parent;//这是记录关系的数组//查找int find(int parent[], int i) {if (parent[i] == -1)return i;return find(parent, parent[i]);}//合并void union(int parent[], int x, int y) {int xset = find(parent, x);int yset = find(parent, y);if (xset != yset)parent[xset] = yset;}public int countComponents(int n, int[][] edges) {int len=edges.length;parent = new int[n];Arrays.fill(parent, -1);for (int i = 0; i < len; i++) {union(parent, edges[i][0], edges[i][1]);}int count = 0;//查根的数量for (int i = 0; i < n; i++)if (parent[i] == -1)count++;return count;}
}

leetcode323. 无向图中连通分量的数目相关推荐

  1. LeetCode 323. 无向图中连通分量的数目(并查集)

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

  2. [Swift]LeetCode323. 无向图中的连通区域的个数 $ Number of Connected Components in an Undirected Graph...

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  3. 求无向图的连通分量或有向图的强连通分量—tarjan()ccf高速公路

    概念定义: 在图论中,连通图基于连通的概念. 1. 连通(无向图): 若顶点Vi能通过路径到达Vj,那么称为Vi和Vj是连通的 对无向图:若从顶点Vi到顶点Vj有路径相连(当然从j到i也一定有路径), ...

  4. 简单拓扑发现及其应用---------无向图中节点如何自主发现环,切断环。唯一路径以及原路返回。

    根据最近正在做的一个勤务电话项目,设计方案时出了一个的拓扑问题.概括就是无向图中节点如何自主发现环,切断环: 我将其简化为一下题目:     题目:拓扑上设备数目未知,但是每台设备有四个端口,设备之间 ...

  5. 使用并查集实现查找无向图的连通分量和求解有向图的强连通分量

    目录 1.无向图的连通分量 2.求解连通分量算法的实现 3.有向图的强连通分量 4.求解有向图的强连通分量 使用C语言实现并查集 有向图和无向图 1.无向图的连通分量 无向图G中,如果存在从顶点v1到 ...

  6. 图论学习-无向图双连通分量

    文章目录 无向图双连通分量 1.基本术语与概念 1.1.割点 1.2.桥 1.3.边双连通分量 (e-DCC) 1.4 点双连通分量 (v-DCC) 1.5 时间戳 2.求解 2.1 边双连通分量 2 ...

  7. 环的寻找:寻找无向图中所有存在的环-删除点法

    此文讨论一个无向图中存在环的问题,在不管多复杂的连通图中寻找出所有的环,使用删除点的方法. 此外,这个版本的查找方法可以用于其他场景:找出无向图中所有的环的算法 结果能找到最小的环,或许要靠运气,输出 ...

  8. Leet Code题解 - 1559. Detect Cycles in 2D Grid 检测二维无向图中的环

    Leet Code题解 -- 1559. Detect Cycles in 2D Grid 检测二维无向图中的环 前言 一.题目描述 二.思路整理 1. 审题 2. 分布实现步骤 2.1 将二维数组处 ...

  9. 1967. 作为子字符串出现在单词中的字符串数目

    1967. 作为子字符串出现在单词中的字符串数目 给你一个字符串数组 patterns 和一个字符串 word ,统计 patterns 中有多少个字符串是 word 的子字符串.返回字符串数目. 子 ...

最新文章

  1. 统计学习方法-最大熵模型
  2. android 百度地图zoomtospan,android百度地图:MapController
  3. OpenGL GLFX开放GL效果库
  4. 「C++: Eigen」学习笔记
  5. java 拼图_我最喜欢的Java拼图2 + 1 = 4
  6. Linux C简单的web服务器
  7. xp 优化   转自天涯
  8. 递归法:从n个小球中取m个小球(不放回),共有多少种取法?
  9. 不用媒体查询做web响应式设计-遁地龙卷风
  10. 信号与系统分析中的复变函数
  11. Build-dep linux 知乎,apt-get安装和apt-get build-dep有什么区别?
  12. 机器手臂(2):机械手臂关节研究
  13. wav 文件头 删除_Yate for mac(音频文件标记和管理工具)
  14. Android性能优化之页面优化
  15. uboot引导kernel - 4 -gd bd详解
  16. 麻雀虽小五脏俱全----blender介绍
  17. python通过ssh链接sql(python通过阿里跳板机链接阿里数据库)
  18. 零基础学习Shell编程
  19. java输出语句的封装
  20. mysql字段掩码_access字段输入掩码之字符篇

热门文章

  1. sdk是什么_人脸识别在美颜SDK中存在什么意义?
  2. ArcGIS将CAD等高线转换为TIN/DEM数据
  3. java类作用域标识符_java入门 (二) 标识符、数据类型、类型转换、变量、常量、作用域...
  4. Project vector on to vector
  5. asterisk 互联
  6. Windows进程系列(2) -- Svchost进程
  7. java判断tcp是否阻塞_connect()调用在TCP堆栈中是非阻塞的(java)是什么意思
  8. educoder平台_22个在线平台,2.4万门网课
  9. python table对象_(RPA学习):Python-docx 常用方法
  10. 【转】c#中@的3种作用