一、题目
二、代码
class Solution
{
//只会多出一条边 找到即可
int n = 1001;
int[] father = new int[n];
public void init()
{
int i;
for(i=0;i<n;i++)
{
father[i] = i;
}
}
public int find(int u)
{
if(u==father[u]) return u;
father[u] = find(father[u]);
return father[u];
}
public boolean same(int u,int v)
{
u = find(u);
v = find(v);
return u==v;
}
public void join(int u ,int v)
{
u=find(u);
v=find(v);
if(u==v) return;
father[u] = v;
}
public int[] findRedundantConnection(int[][] edges)
{
int i;
int length = edges.length ;
init();
for(i=0;i<length;i++)
{
if(same(edges[i][0],edges[i][1])) return edges[i];
join(edges[i][0],edges[i][1]);
}
return new int[2];
}
}