leetcode 1319. Number of Operations to Make Network Connected(使网络连接的操作数)

Leetcode 1319:连通网络的操作次数(超详细的解法!!!) 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计... 阅读详情

在这里插入图片描述
为了让每个电脑都能连在网络里,可以移动网线,把没有连接的电脑连起来。
问需要移动多少条网线。
不能做到的话返回-1。

思路:

细观察,这不就是聚类么,
要把单独的类都聚到一个大类里面去。
需要移动的网线数量就是单独的类的个数。

Example1中,电脑3单独成一类,需要移动一根网线。
Example2中,电脑4和5单独成2类,需要移动2根网线。

如果网线不够就返回-1,什么情况下网线不够?
总共有n台电脑,那么至少需要n-1条网线,它们才能全部连起来。
如果网线个数少于n-1, 直接返回-1.

如何聚类呢,用union-find.
最后parent是它自己的就是单独一类的。
但是要排除掉最后聚成一类的那个类本身。

    public int makeConnected(int n, int[][] connections) {
        if(connections.length < n-1) return -1;
        int res = 0;
        int[] parent = new int[n];
        for(int i = 0; i < n; i++) parent[i] = i;

        //union
        for(int[] conn : connections) {
            int p1 = find(parent, conn[0]);
            int p2 = find(parent, conn[1]);

            if(p1 == p2) continue;
            parent[p2] = p1;
        }
        for(int i = 0; i < n; i++) {
            if(parent[i] == i) res ++;
        }
        res --; //root本身
        return res;
    }

    int find(int[] parent, int cur) {
        int p = cur;
        while(parent[p] != p) {
            p = parent[p];
            parent[p] = parent[parent[p]]; 
        }
        return p;
    }
electron windows设置镜像地址环境变量报错npm error `ELECTRON_MIRROR` is not a valid npm option 如果你是在使用某个特定的脚本或配置文件,请检查该文件中是否有不正确的配置项,并进行相应的修正。确保你遵循electron的官方安装指南,并且没有包含不必要的或错误的配置选项。如果问题依然存在,可以查看npm的官方文档或者相关社区获取更多帮助。 阅读详情

相关推荐

手把手教你用示波器实测CAN总线波形:快速区分高速、低速及常见故障

本文详细介绍了如何使用示波器实测CAN总线波形,快速区分高速CAN总线和低速CAN总线,并诊断常见故障。通过实战案例和波形分析,帮助工程师掌握CAN总线信号特征,提升故障排查效率,适用于汽车电子和工业控制领域。

weixin_33217202的博客 409

LeetCode刷题记173-1319. 连通网络的操作次数

LeetCode刷题记173 1319. 连通网络的操作次数 题目 class Solution { int[] pa; public void init(int n) { pa = new int[n]; for (int i = 0; i < n; i ++) { pa[i] = i; } } public int find(int x) { if (x == pa[x])

weixin_44013557的博客 245

Android AI Agent集成实战:架构设计与自动化技能开发

AI Agent(人工智能代理)是一种能够感知环境、自主规划并执行任务以达成目标的软件实体。其核心原理在于结合大语言模型的推理能力与工具调用(Tool Calling)技术,使应用从被动响应转向主动服务。在移动开发领域,这项技术的价值在于为应用注入“智能大脑”,实现跨应用自动化与个性化交互,从而显著提升用户体验和操作效率。具体到Android平台,其应用场景广泛,例如自动填写表单、智能聊天辅助、个性化工作流优化等。本文聚焦于Android AI Agent的工程化落地,深入探讨了如何利用Accessibil

weixin_42636895的博客 661

LeetCode 1319 并查集

连通网络的操作次数 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回 -1 。 ..

SapientialM的成长历程 356

从零构建智慧农业监测终端:STM32数据采集与LoRa组网实战

本文详细介绍了如何从零构建智慧农业监测终端,涵盖STM32数据采集与LoRa组网实战。通过DHT22温湿度传感器和YL-69土壤湿度传感器实现精准环境监测,结合LoRa无线传输技术解决偏远农田信号问题。文章还分享了硬件选型、电路设计、低功耗优化及Flutter跨平台应用开发等关键技巧,助力农业智能化升级。

weixin_29172963的博客 357

告别环境配置噩梦:用Docker Desktop + WSL2在Windows上5分钟搞定vLLM运行环境

本文详细介绍了如何在Windows系统上使用Docker Desktop和WSL2快速搭建vLLM开发环境,5分钟内完成配置。通过容器化技术解决传统环境配置中的依赖冲突、环境污染等问题,提供一键复用的高效方案,特别适合AI开发者快速部署和测试vLLM框架。

weixin_28728495的博客 502

LeetCode 1319. 连通网络的操作次数--并查集

连通网络的操作次数 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回 -1 。 .

weixin_43918046的博客 193

在Simulink中进行基于模拟信号数字化处理的仿真

模拟信号数字化处理通常包括以下几个步骤:采样、量化、编码以及数字信号处理(如滤波、变换等)。Simulink提供了丰富的模块库,可以方便地实现这些步骤,并支持对整个系统的实时仿真与调试。首先明确你的系统需求,比如输入信号类型(正弦波、方波等)、采样率、需要执行的数字信号处理操作(低通滤波、频谱分析等)。假设我们需要处理一个50Hz的正弦波信号,采样率为1kHz,并希望对该信号进行低通滤波以去除高频噪声。本文介绍了如何在Simulink中进行基于模拟信号数字化处理的仿真。

xiaoheshang_123的博客 623

leetcode 1319. 连通网络的操作次数(C++)

用以太网线缆将n台计算机连接成一个网络,计算机的编号从0到n-1。线缆用connections表示,其中connections[i] = [a, b]连接了计算机a和b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连...

qq_27060423的博客 841

使用Python实现卷积神经网络(CNN)

卷积神经网络是一种专门用于处理具有网格状拓扑结构数据(如图像、声音)的深度学习模型。CNN的核心组件是卷积层和池化层,它们能够有效地从图像中提取特征并实现空间不变性,使得模型能够对图像中的物体进行识别和分类。我们定义一个简单的卷积神经网络模型,包括卷积层、池化层和全连接层。return x# 创建模型实例我们选择交叉熵损失函数作为分类任务的损失函数,并使用随机梯度下降(SGD)作为优化器。

Echo_Wish 4488

【论文复现】Applied Intelligence 2025:Auto-PU正例无标签学习的自动化实现与GPT-5.4辅助编程实战

正例-无标签学习(Positive-Unlabelled Learning, PU Learning)是机器学习领域处理"只有正例标签,负例完全未知"场景的重要技术。本文基于2025年发表于Applied Intelligence的最新研究成果,详细阐述如何从零复现Auto-PU框架(包含GA-Auto-PU、BO-Auto-PU、EBO-Auto-PU三种优化器)。

nmdbbzcl的博客 1388

【Leetcode & Union-Find】使用并查集解决1319. Number of Operations to Make Network Connected

写在前面 这是今天下午做leetcode contest的第三题,一开始看到的时候以为考察的是图的连通性的问题,没能想出解决方法,后来看Discussion,发现大家都用到了Union-Find,正好《算法》也看到Union-Find,于是就去把这章看完了再来做,下面会先介绍Union-Find,然后写解题思路。 Union-Find(并查集) 由Dynamic Connectivity Pro...

JellyFishDing的博客 482

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Leetcode 1319.连通网络的操作次数(Number of Operations to Make Network Connected)

Leetcode 1319.连通网络的操作次数 1 题目描述(Leetcode题目链接)   用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返

qq_39378221的博客 451

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

[leetcode] 1319. Number of Operations to Make Network Connected

Description There are n computers numbered from 0 to n-1 connected by ethernet cables connections forming a network where connections[i] = [a, b] represents a connection between computers a and b. Any computer can reach any other computer directly or indir

Learning from the mistakes 297

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LeetCode(1319):连通网络的操作次数 Number of Operations to Make Network Connected(Java)

2021.1.8 LeetCode 从零单刷个人笔记整理(持续更新) github:https://github.com/ChopinXBP/LeetCode-Babel 这是一道经典的并查集问题。 关键点在于:每一个多余的连通集都需要一次操作进行消除,每一次操作需要一条多余的边。 因此,可以先建立一个并查集,初始连通集个数为n。根据给定的connection来合并连通集,每一次失败的合并意味着有一条多余的边。 计算多余的连通集个数result。 如果result=0,说明已经全连通,直接返回0; 如果l

NJU_ChopinXBP的博客 288

Leetcode 1319. Number of Operations to Make Network Connected - 彻底掌握并查集(Union Find)系列题12

题目又多处出现关键词connected,可以确定是连通性问题,马上想到并查集(Union Find)。这道题的问法跟之前的并查集题稍有不同,但是万变不离其宗,仍然可以套用并查集(Union Find)模板。

hgq522的博客 414

【LeetCode】1319.连通网络的操作次数(Number of Operations to Make Network Connected)

目录题目描述题目大意解题方法方法一:并查集 题目描述 There are n computers numbered from 0 to n-1 connected by ethernet cables connections forming a network where connections[i] = [a, b] represents a connection between computers a and b. Any computer can reach any other computer di

m0_54964586的博客 298

1319. Number of Operations to Make Network Connected(Leetcode每日一题-2021.01.23)--抄答案

Problem There are n computers numbered from 0 to n-1 connected by ethernet cables connections forming a network where connections[i] = [a, b] represents a connection between computers a and b. Any computer can reach any other computer directly or indirectl

Bryan要加油 385

【leetcode】1319. 连通网络的操作次数(number-of-operations-to-make-network-connected)(BFS)[中等]

链接 https://leetcode-cn.com/problems/number-of-operations-to-make-network-connected/ 耗时 解题:29 min 题解:7 min 题意 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算

Krone_的博客 221

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

文章目录1. 题目2. 解题2.1 BFS2.2 DFS2.3 并查集 1. 题目 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。 线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。 请你计算并返回使所

Michael是个半路程序员 2247

leetcode1319

连通网络的操作次数 文章目录连通网络的操作次数前言一、关于c++中二维数组的传参二、使用步骤1.引入库2.读入数据总结 前言 放假不久,在家打码,不过明天就能打球了,耶/font> 一、关于c++中二维数组的传参 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt impor

qq_29822911的博客 224

LeetCode题解(1319):连通网络的操作次数(Python)

题目:原题链接(中等) 标签:并查集、广度优先搜索、深度优先搜索 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 312ms (16.07%) Ans 2 (Python) Ans 3 (Python) 解法一: class DSU1: def __init__(self, n: int): self._n = n self._array = [i for

长行 688

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

用以太网线缆将n台计算机连接成一个网络,计算机的编号从0到n-1。线缆用connections表示,其中connections[i] = [a, b]连接了计算机a和b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连...

weixin_41514525的博客 214

leetcode 1319 连通网络的操作次数

leetcode 1319 连通网络的操作次数; 并查集,记录集合个数;

大草的博客 493

LeetCode:1319题——连通网络的操作数

题目: 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回 -1 。 来源:力扣(Le

qq_44630682的博客 368

leetcode:1319. 连通网络的操作次数(dfs)

链接:https://leetcode-cn.com/problems/number-of-operations-to-make-network-connected/ 用数组记录下连通关系(注意是双向的),然后用dfs检查共有几个连通图,答案即为连通图的数量减1. C++代码: class Solution { vector<vector<int>> edges; vector<bool> used; public: int makeConnect

Gomamon的博客 241
上一篇: leetcode 2492. Minimum Score of a Path Between Two Cities(两个城市间路径的最小score)
下一篇: leetcode 1466. Reorder Routes to Make All Paths Lead to the City Zero(重新定向路线,使所有路径通向城市0)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值