How to find the length of the longest consecutive sequence of an unsorted array of integers in Swift

1 Answer

0 votes
import Foundation

func longestConsecutive(_ nums: [Int]) -> Int {
    let numSet = Set(nums)
    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 += 1
                currentStreak += 1
            }

            longestStreak = max(longestStreak, currentStreak)
        }
    }

    return longestStreak
}


let nums = [680, 4, 590, 3, 2, 1]

let result = longestConsecutive(nums)

print("Longest consecutive sequence length: \(result)")



/*
run:

Longest consecutive sequence length: 4

*/

 



answered Aug 19, 2025 by avibootz

Related questions

...