55561bc4创建于 2022年12月27日历史提交
class Solution {

    int[] parent;

    public int[] findRedundantConnection(int[][] edges) {
        parent = new int[edges.length];
        for (int i = 0; i < edges.length; i++) parent[i] = i + 1;

        for (int[] edge : edges) {
            if (find(edge[0]) == find(edge[1])) return edge; else union(
                edge[0],
                edge[1]
            );
        }

        return new int[2];
    }

    public int find(int x) {
        if (x == parent[x - 1]) return x;
        return find(parent[x - 1]);
    }

    public void union(int x, int y) {
        parent[find(y) - 1] = find(x);
    }
}