题目
思路
-
代码
public int[] findRedundantConnection(int[][] edges) {if (edges == null || edges.length == 0) return new int[0];int[] s = new int[edges.length + 1];Arrays.fill(s, -1);for (int[] edge : edges) {if (!union(s, edge[0], edge[1])) return edge;}return new int[0];}public boolean union(int[] s, int i, int j) {int ri = findFC(s, i), rj = findFC(s, j);if (ri == rj) return false;s[ri] = rj;return true;}public int findFC(int[] s, int i) {if (i < 0 || i >= s.length) return -1;if (s[i] < 0) return i;s[i] = findFC(s, s[i]);return s[i];}
