fun longestConsecutive(nums: IntArray): Int {
val numSet = nums.toHashSet()
var longestStreak = 0
for (num in numSet) {
// Only start counting if it's the beginning of a sequence
if (!numSet.contains(num - 1)) {
var currentNum = num
var currentStreak = 1
while (numSet.contains(currentNum + 1)) {
currentNum++
currentStreak++
}
longestStreak = maxOf(longestStreak, currentStreak)
}
}
return longestStreak
}
fun main() {
val nums = intArrayOf(680, 4, 590, 3, 2, 1)
println("Longest consecutive sequence length: ${longestConsecutive(nums)}")
}
/*
run:
Longest consecutive sequence length: 4
*/