解题思路:
(1)并查集
class Solution {
public:
int Find_Root(int x,vector<int> &p) {
int x_root=x;
while(p[x_root]!=-1) x_root=p[x_root];
return x_root;
}
bool Union(int x,int y,vector<int> &p) {
int x_root=Find_Root(x,p);
int y_root=Find_Root(y,p);
if(x_root==y_root) return false;
else p[x_root]=y_root;
return true;
}
vector<int> findRedundantConnection(vector<vector<int>>& e) {
vector<int> p(e.size()+1,-1);
for(int i=0;i<e.size();i++) {
if(Union(e[i][0],e[i][1],p)) continue;
else return e[i];
}
return {};
}
};