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 racha 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 importa 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 la matriz. La otra secuencia, de 39 a 41, solo tiene 3 valores.

lock icon+17 pruebas ocultas al enviar

challenge icon

Para ir más allá

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

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

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

4