Redundant Connection
MediumDepth-First SearchBreadth-First SearchUnion FindGraph
Solution
export function findRedundantConnection(edges: number[][]): number[] {
const n = edges.length;
const parents = Array.from({ length: n }, (_, i) => i);
function find(a: number): number {
if (a === parents[a]) {
return a;
}
parents[a] = find(parents[a]);
return parents[a];
}
function union(a: number, b: number): boolean {
const parentA = find(a);
const parentB = find(b);
if (parentA === parentB) {
return true;
}
if (parentA < parentB) {
parents[parentB] = parentA;
} else {
parents[parentA] = parentB;
}
return false;
}
for (const [a, b] of edges) {
if (union(a, b)) {
return [a, b];
}
}
return [];
}
Complexity
- Time:
- Space: