leetcode1319. 连通网络的操作次数

题目描述

链接: leetcode1319.

用以太网线缆将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 上。

示例2:

输入:n = 6, connections = [[0,1],[0,2],[0,3],[1,2],[1,3]]
输出:2

示例3:

输入:n = 6, connections = [[0,1],[0,2],[0,3],[1,2]]
输出:-1
解释:线缆数量不足。

示例4:

输入:n = 5, connections = [[0,1],[0,2],[3,4],[2,3]]
输出:0

题解

使用并查集来解答:

  • 当前线缆的个数小于 n - 1,则显然无法完成任务,直接返回-1
  • 利用并查集将connections连通,并求出当前联通分量个数k, 则答案就是k - 1
    其中并查集算法可见: 并查集算法.
    public int makeConnected(int n, int[][] connections) {int row = connections.length;if (row < n - 1) {return -1;}UnionFind unionFind = new UnionFind(n);for (int[] connection : connections) {int p = connection[0];int q = connection[1];unionFind.union(p, q);}int count = unionFind.count();return count - 1;}

leetcode1319. 连通网络的操作次数相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. leetcode 1319. 连通网络的操作次数(并查集)

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

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

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

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

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

最新文章

  1. CUDA Samples: approximate image reverse
  2. ElasticSearch实战-入门
  3. 查看linux服务器dns,Linux中查看和设置DNS服务器
  4. vueCli3 身份证正则校验
  5. wlnmp+nginx+mysql+php集合包_LNMP(Linux+Nginx+MySQL+PHP)部署详解(一)
  6. 679. 24 点游戏
  7. SELU︱在keras、tensorflow中使用SELU激活函数
  8. POJ 1325 Machine Schedule 解题报告
  9. 学堂在线体育与社会作业答案(武汉体育学院)(学堂在线)网课搜题
  10. PLC编程实例(一) 基本电路
  11. LocalDateTime设定某一时间值,转Date
  12. 利用metadata-extractor定向获取图片拍摄时间以及宽高
  13. 数据结构--算术表达式求值
  14. 油菜出现花而不实现象,这是什么原因,该怎样防治?
  15. 你不知道的3D电影7大危害
  16. 第一次数据分析师面试
  17. 随鼠标滚轮缩小和放大图片
  18. 我的世界手机版java光影在哪下载_我的世界手机版CSPE光影包-minecraftpe光影包下载...
  19. 【ML/DL】python3学习《机器学习实战》书中的报错及解决办法
  20. NANDFLASH介绍(转)

热门文章

  1. 推荐一款强大的SQL Internal 查看工具InternalsViewer
  2. IDEA for win 常用快捷键
  3. evplayer2可以多设备登录吗_这么多自助设备,你都选对投放位置了吗
  4. 用python写石头剪刀布_Python实现简单石头剪刀布游戏
  5. TIME_WAIT和CLOSE_WAIT
  6. 构建基本的嵌入式Linux根文件系统
  7. 服务至上——安擎的待“客”之道
  8. 【Android Demo】简单手机通讯录
  9. 一条开启勇士王朝的短信
  10. jquery微博实例