美文网首页
LeetCode 684 冗余连接

LeetCode 684 冗余连接

作者: 风卷晨沙 | 来源:发表于2019-05-29 20:24 被阅读0次

    1.题目

    https://leetcode-cn.com/problems/redundant-connection/

    2.题解

    这道题的实质就是让我们把N个节点带环的无向图通过去掉一个边的方法变成N个节点的树(就是把环给去掉)。那么去掉的这个边的的特点就是他是一个两个点都被其他点连着的边。如果只有三个点,那么这个边的两个点的顶点就必是同一个点;如果是多个点,那么就可以用那个较小的节点设为较大的那个节点。直到满足上一情况的条件。便可得出结果。

    3.代码

    class Solution {
        public int[] findRedundantConnection(int[][] edges) {
            int[] parent = new int[1001];
            //父节点
            for (int i = 0; i < parent.length; i++){
                 parent[i] = i;
            }
            //遍历
            for (int[] edge: edges){
                int f = edge[0];
                int t = edge[1];
                if (find(parent, f) == find(parent, t)) return edge;
                else parent[find(parent, f)] = find(parent, t);
            }
             
            return new int[2];
        }
         //查找父节点
        private int find(int[] parent, int f) {
            if (f != parent[f]) {
              parent[f] = find(parent, parent[f]); 
            }
            return parent[f];
        }
     }
    
    

    4.结果截图

    684.png

    相关文章

      网友评论

          本文标题:LeetCode 684 冗余连接

          本文链接:https://www.haomeiwen.com/subject/musytctx.html