Menu
CoddyTech

Longest Consecutive Sequence

MedioHashingpython iconjava iconcpp iconc iconjs icon+10

Ti viene fornito un array di interi nums senza un ordine particolare. 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 viene conteggiato una sola volta.

Funzione

longestConsecutive(nums: integer-array) → integer
numsinteger-array
gli interi, in qualsiasi ordine, con ripetizioni ammesse
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, ha solo 3 valori.
challenge icon

Per approfondire

Supponiamo che i valori arrivino uno alla volta e che dopo ciascuno tu debba indicare la serie più lunga finora. Riesci a mantenere aggiornata la risposta in tempo medio O(1) per valore?

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

Test #1

Test #2

Test #3

Argomento

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

Output atteso

4