思路:并查集
当发现连通的时候,即为最后一条边(因为这条边是构成环的最后一条边,所以当发现连通时即为ans)
class Solution {
public:
int father[1005];
void unite(int u, int v) {
int fau = findfather(u);
int fav = findfather(v);
if(fau != fav) father[fau] = fav;
}
int findfather(int m) {
if (father[m] == m) return m;
return father[m] = findfather(father[m]);
}
vector<int> findRedundantConnection(vector<vector<int>>& edges) {
for (int i = 1; i < 1005; ++i) {
father[i] = i;
}
for (auto& a : edges) {
int first = a[0], second = a[1];
if (findfather(first) == findfather(second)) return a;
unite(a[0], a[1]);
}
return {};
}
};