leet-code/longest-consecutive-sequence/sol.go

31 lines
463 B
Go
Raw Normal View History

2022-07-05 23:33:16 +00:00
package main
func longestConsecutive(nums []int) (max int) {
exists := make(map[int]bool, len(nums))
for _, n := range nums {
exists[n] = true
}
done := make(map[int]bool, len(nums))
for _, n := range nums {
if _, ok := done[n]; !ok {
done[n] = true
l := 1
for exists[n+1] {
l++
n++
done[n] = true
}
n -= l - 1
for exists[n-1] {
l++
n--
done[n] = true
}
if l > max {
max = l
}
}
}
return max
}