Menu
CoddyTech

Longest Consecutive Sequence

ŚrednieHaszowaniepython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz tablicę liczb całkowitych nums w dowolnej kolejności. Ciąg kolejnych liczb to grupa wartości x, x+1, x+2 i tak dalej, z których każda występuje gdzieś w nums. Zwróć długość najdłuższego ciągu kolejnych liczb. Wartość występująca więcej niż raz jest liczona tylko raz.

Funkcja

longestConsecutive(nums: integer-array) → integer
numsinteger-array
liczby całkowite, w dowolnej kolejności, powtórzenia dozwolone
Zwracainteger
długość najdłuższej serii kolejnych wartości występujących w nums

Ograniczenia

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • Wartości mogą się powtarzać. Pozycje w tablicy nie mają znaczenia — liczy się tylko to, które wartości w niej występują.

Przykłady

Wejście
nums = [40, 4, 39, 1, 3, 2, 41]
Wyjście
4
Wyjaśnienie
1, 2, 3 i 4 są obecne, tworząc serię 4 wartości, mimo że są rozproszone w tablicy. Druga seria, od 39 do 41, zawiera tylko 3 wartości.
challenge icon

Pytanie dodatkowe

Załóżmy, że wartości napływają pojedynczo i po każdej z nich musisz podać najdłuższą serię do tej pory. Czy potrafisz na bieżąco aktualizować odpowiedź w średnim czasie O(1) na każdą wartość?

Zresetuj kod
def longestConsecutive(nums):
    # Napisz kod tutaj

Test #1

Test #2

Test #3

Argument

nums = [40, 4, 39, 1, 3, 2, 41]

Oczekiwany wynik

4