classSolution{ publicintlongestConsecutive(int[] nums){ UnionFind uf = new UnionFind(nums); int ans = 0;
for (int num : nums) { // 当num+1存在,将num合并到num+1所在集合中(相关元素) if (uf.find(num + 1) != null) { uf.union(num, num + 1); } } for(Integer x: uf.map.keySet()){ System.out.println(x+"_"+uf.map.get(x)); } for (int num : nums) { // 找到num的最远连续右边界 int right = uf.find(num); ans = Math.max(ans, right - num + 1); } return ans; } }