27 lines
398 B
Go
27 lines
398 B
Go
package q128
|
|
|
|
func longestConsecutive(nums []int) int {
|
|
set := make(map[int]struct{}, len(nums))
|
|
for _, n := range nums {
|
|
set[n] = struct{}{}
|
|
}
|
|
|
|
longest := 0
|
|
for n := range set {
|
|
if _, ok := set[n-1]; ok {
|
|
continue
|
|
}
|
|
r := n
|
|
for {
|
|
if _, ok := set[r+1]; ok {
|
|
r++
|
|
} else {
|
|
break
|
|
}
|
|
}
|
|
longest = max(longest, r-n+1)
|
|
}
|
|
return longest
|
|
}
|
|
|
|
var _ = longestConsecutive
|