class Solution
{
public:
//并查集 基本步骤 初始化 并 查 判断
int n=1001;
int father[1001];
//并查集初始化
void init()
{
for(int i=0;i<n;i++)
{
father[i]=i;
}
}
//并查集查找
int find(int u)
{
return u==father[u] ? u : find(father[u]);
}
//并查集合并
void join(int u,int v)
{
u=find(u);
v=find(v);
if(u==v) return;//说明根相同 无需合并
else
{
father[v]=u;
}
}
//并查集判断是否 根相同
bool same(int u,int v)
{
u=find(u);
v=find(v);
return u==v;
}
vector<int> findRedundantConnection(vector<vector<int>>& edges)
{
int i,j;
init();
for(i=0;i<edges.size();i++)
{
if(same(edges[i][0],edges[i][1])) return edges[i];
else
{
join(edges[i][0],edges[i][1]);
}
}
return {};
}
};