Menu
CoddyTech

Longest Consecutive Sequence

MedioHashingpython iconjava iconcpp iconc iconjs icon+10

Recibes un arreglo de enteros nums sin ningún orden particular. Una secuencia consecutiva es un grupo de valores x, x+1, x+2 y así sucesivamente, cada uno de los cuales aparece en algún lugar de nums. Devuelve la longitud de la secuencia consecutiva más larga. Un valor que aparece más de una vez cuenta una sola vez.

Función

longestConsecutive(nums: integer-array) → integer
numsinteger-array
los números enteros, en cualquier orden, se permiten repeticiones
Devuelveinteger
la longitud de la secuencia más larga de valores consecutivos presentes en nums

Restricciones

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • Los valores pueden repetirse. Las posiciones en el arreglo no importan, solo qué valores están presentes.

Ejemplos

Entrada
nums = [40, 4, 39, 1, 3, 2, 41]
Salida
4
Explicación
1, 2, 3 y 4 están todos presentes, una secuencia de 4, aunque estén dispersos por el arreglo. La otra secuencia, de 39 a 41, tiene solo 3 valores.
challenge icon

Para ir más allá

Supón que los valores llegan de uno en uno y que, después de cada uno, debes indicar la secuencia más larga hasta el momento. ¿Puedes mantener la respuesta actualizada en O(1) tiempo promedio por valor?

Restablecer código
def longestConsecutive(nums):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

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

Salida Esperada

4