package main
import (
"fmt"
)
func longestConsecutive(nums []int) int {
if len(nums) == 0 {
return 0
}
// Create a map to store unique numbers
numSet := make(map[int]bool)
for _, num := range nums {
numSet[num] = true
}
longestStreak := 0
// Iterate through the set
for num := range numSet {
// Check if it's the start of a sequence
if !numSet[num-1] {
currentNum := num
currentStreak := 1
// Count the length of the sequence
for numSet[currentNum+1] {
currentNum++
currentStreak++
}
// Update the longest streak
if currentStreak > longestStreak {
longestStreak = currentStreak
}
}
}
return longestStreak
}
func main() {
nums := []int{680, 4, 590, 3, 1, 2}
fmt.Println("Length of longest consecutive sequence:", longestConsecutive(nums))
}
/*
run:
Length of longest consecutive sequence: 4
*/