用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。

网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。

给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回 -1 。

示例 1:

输入:n = 4, connections = [[0,1],[0,2],[1,2]]
输出:1
解释:拔下计算机 1 和 2 之间的线缆,并将它插到计算机 1 和 3 上。

代码

class Solution {int[] fa;public void  init(){for(int i=0;i<fa.length;i++)fa[i]=i;}public int  find(int x){if(x!=fa[x])fa[x]=find(fa[x]);return fa[x];}public void   union(int x,int y){x=find(x);y=find(y);if(x==y) return;fa[x]=y;}public int makeConnected(int n, int[][] connections) {fa=new int[n];init();int mul=0;for(int[] c:connections)//记录下多余的边{if(find(c[0])==find(c[1])) mul++; union(c[0],c[1]);   }int pa=0;for(int i=0;i<n;i++)//统计连通分量的个数if(i==fa[i]) pa++;return pa-1>mul?-1:pa-1;//多余的边是否满足将连通分量连接在一起}
}

leetcode 1319. 连通网络的操作次数(并查集)相关推荐

  1. LeetCode 1319. 连通网络的操作次数(BFS/DFS/并查集)

    文章目录 1. 题目 2. 解题 2.1 BFS 2.2 DFS 2.3 并查集 1. 题目 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1. 线缆用 connection ...

  2. leetcode —— 1319. 连通网络的操作次数

    用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1.线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b. 网络 ...

  3. 【每日一题】 1319. 连通网络的操作次数

    [每日一题] 1319. 连通网络的操作次数 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1.线缆用 c ...

  4. 1319. 连通网络的操作次数

    链接:1319. 连通网络的操作次数 题解: 1.图的bfs遍历 class Solution {public:void bfs(std::unordered_map<int, std::vec ...

  5. 【力扣】1319. 连通网络的操作次数

    以下为力扣官方题解 1319. 连通网络的操作次数 题目 示例1 示例2 示例3 示例4 提示 官方题解 思路一 深度优先搜索 代码 复杂度分析 思路二 并查集 代码 复杂度分析 题目 用以太网线缆将 ...

  6. leetcode1319. 连通网络的操作次数

    leetcode1319. 连通网络的操作次数 题目描述 链接: leetcode1319. 用以太网线缆将n台计算机连接成一个网络,计算机的编号从0到n-1.线缆用connections表示,其中c ...

  7. leetcode-1319:连通网络的操作次数

    leetcode-1319:连通网络的操作次数 题目 解题 方法一:并查集 题目 题目连接 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1.线缆用 connections ...

  8. 【数据结构与算法】之连通网络的操作次数的算法

    一.题目要求 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1.线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a ...

  9. leetcode1319. 连通网络的操作次数(并查集)

    用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1.线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b. 网络 ...

最新文章

  1. 2020年,图机器学习的趋势有哪些?
  2. 稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
  3. bzoj5039:[Jsoi2014]序列维护
  4. pytorch卷积可视化_使用Pytorch可视化卷积神经网络
  5. libghttp 编译及封装使用实例
  6. Leetcode1:Two Sum
  7. CSS图像绘制之:条纹背景(转)
  8. java基础教程知识点,[Java教程]js基础知识点总结
  9. org.slf4j.Logger中isTraceEnabled(),isDebugEnabled(),isInfoEnabled(),isWarnEnabled(),isErrorEnabled()
  10. 如何在SQL Server Management Studio中创建和配置链接服务器以连接到MySQL
  11. git21天打卡day4-查看仓库地址
  12. 浅谈计算机教学论文,毕业论文--浅谈计算机教学的有效性
  13. Web前端开发规范之脚本文件和动态文本文件命名规则
  14. 汽车+辐射测试软件,汽车EMC辐射发射的一些所见所闻和思考
  15. usb转rs485 linux驱动下载,USB转RS485串口驱动
  16. excel查标准正态分布_利用Excel的NORMSDIST计算正态分布函数表
  17. java无法远程读写HDFS系统解决方案
  18. python计算特征根以及特征向量
  19. QCC3040---FS(file system)中添加文件方法
  20. 数据分析笔试题|美团点评2020校招

热门文章

  1. 1061 判断题 (15 分)
  2. Linux下的I/O复用与epoll详解(ET与LT)
  3. 【Leetcode | 48】226. 翻转二叉树
  4. kolla-ansible-----常用命令
  5. quartz.net 执行后台任务
  6. BZOJ4881 线段游戏(二分图+树状数组/动态规划+线段树)
  7. python中的序列化与反序列化
  8. ajax 赋值return
  9. 网管的自我修养-网络系统
  10. animate css3 应用的借鉴,一个同事写的JS