| 1234567891011121314151617181920212223242526272829303132 | package mainfunc longestConsecutive(nums []int) (length int) {	n := len(nums)	if n <= 1 {		return n	}	uf := NewUF(n)	m := make(map[int]int)	for i := 0; i < n; i++ {		if _, ok := m[nums[i]]; !ok {			m[nums[i]] = i			if idL, okL := m[nums[i]-1]; okL {				uf.Union(i, idL)			}			if idR, okR := m[nums[i]+1]; okR {				uf.Union(i, idR)			}		}	}	for i := 0; i < n; i++ {		if uf.Size[i] > length {			length = uf.Size[i]		}	}	return}// func main() {// 	println(longestConsecutive([]int{100, 4, 200, 1, 3, 2}), 4)// 	println(longestConsecutive([]int{0, -1}), 2)// }
 |