Menu
CoddyTech

Longest Consecutive Sequence

MedioHashingpython iconjava iconcpp iconc iconjs icon+10

Ricevi un array di numeri interi nums in un ordine qualsiasi. Una sequenza consecutiva è un gruppo di valori x, x+1, x+2 e così via, ognuno dei quali compare da qualche parte in nums. Restituisci la lunghezza della sequenza consecutiva più lunga. Un valore che compare più di una volta conta una sola volta.

Funzione

longestConsecutive(nums: integer-array) → integer
numsinteger-array
gli interi, in qualsiasi ordine, ripetizioni consentite
Restituisceinteger
la lunghezza della sequenza più lunga di valori consecutivi presenti in nums

Vincoli

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • I valori possono ripetersi. Le posizioni nell'array non contano, conta solo quali valori sono presenti.

Esempi

Input
nums = [40, 4, 39, 1, 3, 2, 41]
Output
4
Spiegazione
1, 2, 3 e 4 sono tutti presenti, una serie di 4, anche se sono sparsi nell'array. L'altra serie, da 39 a 41, contiene solo 3 valori.

lock icon+17 test nascosti all’invio

challenge icon

Per approfondire

Supponiamo che i valori arrivino uno alla volta e che, dopo ciascuno, tu debba comunicare la sequenza più lunga fino a quel momento. Riesci a mantenere aggiornata la risposta in tempo medio O(1) per valore?

Ripristina il codice
def longestConsecutive(nums):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

4