leetcode 684 冗余连接

简介: leetcode 684 冗余连接

冗余连接


b47dc33c0a254a6d82e1806d1ab1e560.png

class Solution {
public:
    int n = 0;
    int find(int u , vector<int> &father)
    {
        if(u == father[u]) return father[u];
        father[u] = find(father[u] , father);
        return father[u];
    }
    void join(int u , int v , vector<int> &father)
    {
        u = find(u , father);
        v = find(v , father);
        if(u == v) return;
        father[v] = u;
    }
    bool same(int u , int v , vector<int> &father)
    {
        u = find(u , father);
        v = find(v , father);
        return u == v;
    }
    vector<int> findRedundantConnection(vector<vector<int>>& edges) {
        n = edges.size() + 1;
        vector<int> father(n,0);
        for(int i=0 ; i<n ; i++)
            father[i] = i;
        for(int i=0 ; i<edges.size() ; i++)
        {
            if(same(edges[i][0] , edges[i][1] , father)) return edges[i];
            else join(edges[i][0] , edges[i][1] , father);
        }
        return {};
    }
};
相关文章
|
算法 C++ Python
每日算法系列【LeetCode 685】冗余连接 II
每日算法系列【LeetCode 685】冗余连接 II
|
算法 C++ Python
每日算法系列【LeetCode 684】冗余连接
每日算法系列【LeetCode 684】冗余连接
leetcode 685 冗余连接II
leetcode 685 冗余连接II
90 0
leetcode 685 冗余连接II
|
算法
【Day30】LeetCode算法 [769. 最多能完成排序的块 ] [2131. 连接两字母单词得到的最长回文串]
学习LeetCode算法 [769. 最多能完成排序的块 ] [2131. 连接两字母单词得到的最长回文串]。
117 0
【Day30】LeetCode算法 [769. 最多能完成排序的块 ] [2131. 连接两字母单词得到的最长回文串]
Leetcode | 连接两字母单词得到的最长回文串
Leetcode | 连接两字母单词得到的最长回文串
144 0
Leetcode | 连接两字母单词得到的最长回文串
【day09】LeetCode(力扣)每日一刷[1640. 能否连接形成数组 ][102. 二叉树的层序遍历 ][704. 二分查找 ]
学习了解[1640. 能否连接形成数组 ][102. 二叉树的层序遍历 ][704. 二分查找 ]。
97 0
【day09】LeetCode(力扣)每日一刷[1640. 能否连接形成数组 ][102. 二叉树的层序遍历 ][704. 二分查找 ]
LeetCode每日一题——1640. 能否连接形成数组
如果可以连接 pieces 中的数组形成 arr ,返回 true ;否则,返回 false 。
76 0
|
机器学习/深度学习 自然语言处理 算法
每日算法系列【LeetCode 685】冗余连接 II
在本问题中,有根树指满足以下条件的有向图。该树只有一个根节点,所有其他节点都是该根节点的后继。每一个节点只有一个父节点,除了根节点没有父节点。
131 0
每日算法系列【LeetCode 685】冗余连接 II
|
算法 容器
[leetcode] 连接所有点的最小费用 -MST
这道题是最小生成树板子题 可以用并查集实现,贪心排序边权 讲一个二元组放在一个vector容器里面,其中的元素为<weight,<u,v>>对应<int,<int,int> >类型,第一个参数代表边权的大小,后面的为两个点u,v,然后按照第一个值边权从小到大排序,然后用并查集实现是否连通,从而实现最小生成树 代码有点套娃(
106 0
[leetcode] 连接所有点的最小费用 -MST
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行