当前位置: 首页 > news >正文

leetcode684.冗余连接

 

 依旧是并查集问题,这道题目正好给定顶点数目和边的数目相等,只要找到其中的一条边删除将图转化为树就行,而这个多余的边起始就是并查集的添加过程中二者是同一个根(两个顶点早已经联通了),这时直接返回这条边就行

注意这题中的顶点编号从1开始,为保证一致性,father数组大小为n+1,0索引不使用

class Solution {
private:
    vector<int> father;

    void init() {
        for(int i=0;i<father.size();i++)
            father[i]=i;
    }

    int find(int v) {
        return v==father[v]?v:father[v]=find(father[v]);
    }

    bool isSame(int u,int v) {
        u=find(u);
        v=find(v);
        return u==v;
    }

    bool join(int u,int v) {
        u=find(u);
        v=find(v);
        if(u==v)
            return false;
        else{
            father[v]=u;
            return true;
        }
    }
public:
    vector<int> findRedundantConnection(vector<vector<int>>& edges) {
        int n=edges.size();
        this->father=vector<int>(n+1);
        this->init();

        for(int i=0;i<n;i++){
            int u=edges[i][0];
            int v=edges[i][1];
            if(!this->join(u,v))
                return {u,v};
        }
        return {};
    }
};

相关文章:

  • 021-TCMalloc
  • embeddings
  • 查看visual studio的MSVC版本的方法
  • 论华为 Pura X 折叠屏性能检测
  • 使用 OpenCV 拼接进行图像处理对比:以形态学操作为例
  • 【Linux网络-NAT、代理服务、内网穿透】
  • 国产开发板—米尔全志T113-i如何实现ARM+RISC-V+DSP协同计算?
  • 深入理解 JavaScript/TypeScript 中的假值(Falsy Values)与逻辑判断 ✨
  • e2studio开发RA4L1(15)----配置RTC时钟及显示时间
  • 阿里云搭建docker私有仓库
  • Ninja编译入门指南:极速构建工具的核心用法与实践
  • NAT 实验:多私网环境下 NAPT、Easy IP 配置及 FTP 服务公网映射
  • 大模型训练的调参与算力调度技术分析
  • 七桥问题与一笔画问题:图论的奠基石
  • 数据库的设计规范:第一范式、第二范式、第三范式
  • 人脸表情识别系统分享(基于深度学习+OpenCV+PyQt5)
  • OpenAI 新语音模型:精细控制AI发声|GPT-4o-transcribe:支持多语言转录,准确率超越Whisper
  • Python第六章07:元组的定义和操作
  • 深入理解 Collections.emptyList():优雅处理空列表的利器!!!
  • 蓝桥与力扣刷题(蓝桥 生日蜡烛)
  • 人民日报仲音:大力纠治违规吃喝顽瘴痼疾
  • 习近平同巴西总统卢拉共同出席合作文件签字仪式
  • 高适配算力、行业大模型与智能体平台重塑工业城市
  • 浙江首个核酸药谷落子杭州,欢迎订阅《浪尖周报》第23期
  • 重庆大学通报本科生发14篇SCI论文处理结果
  • 网络主播直播泄机密,别让这些“小事”成威胁国家安全的“突破口”