684. Redundant Connection
我的思路:
这条题目是问无向图何时会成环,想着可以用dfs,也可以用并查集,不过我看这里的并查集比较好写,就直接写并查集了,为了偷懒,连merge都直接写到函数里了。
我的代码:
求轻喷。
class Solution {
public:
const static int maxn = 1010;
int fa[maxn];
vector<int> findRedundantConnection(vector<vector<int>>& edges) {
init();
int len = edges.size();
for(int i = 0; i < len; i++) {
int a = edges[i][0];
int b = edges[i][1];
int f_a = find(a);
int f_b = find(b);
if(f_a == f_b) {
return edges[i];
} else {
fa[find(a)] = find(b);
}
}
return edges[0];
}
void init() {
for(int i = 0; i < maxn; i++) {
fa[i] = i;
}
}
int find(int x) {
while(x != fa[x]) {
x = fa[x];
}
return x;
}
};