Menu
CoddyTech

Longest Consecutive Sequence

ŚrednieHaszowaniepython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz tablicę liczb całkowitych nums w dowolnej kolejności. Sekwencja 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ższej sekwencji kolejnych liczb. Wartość, która występuje 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ższego ciągu 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 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ą serię 4 kolejnych liczb, mimo że są rozrzucone w tablicy. Druga seria, od 39 do 41, zawiera tylko 3 wartości.

lock icon+17 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

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

Zresetuj kod
def longestConsecutive(nums):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

4