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

1 Answer

0 votes
using System;
using System.Collections.Generic;

class LongestConsecutiveSequence
{
    public static int LongestConsecutive(int[] nums) {
        HashSet<int> numSet = new HashSet<int>(nums);
        int longestStreak = 0;

        foreach (int num in numSet) {
            // Check if it's the start of a sequence
            if (!numSet.Contains(num - 1)) {
                int currentNum = num;
                int currentStreak = 1;

                // Count the length of the sequence
                while (numSet.Contains(currentNum + 1)) {
                    currentNum++;
                    currentStreak++;
                }

                longestStreak = Math.Max(longestStreak, currentStreak);
            }
        }

        return longestStreak;
    }

    static void Main()
    {
        int[] nums = { 680, 4, 590, 3, 2, 1 };
        
        int result = LongestConsecutive(nums);
        Console.WriteLine("Length of the longest consecutive sequence: " + result);
    }
}



/*
run:

Length of the longest consecutive sequence: 4

*/

 



answered Aug 18, 2025 by avibootz

Related questions

...