Menu
CoddyTech

Find the Duplicate Number

Recibes un arreglo nums de n+1 enteros, cada uno entre 1 y n. Exactamente un valor aparece más de una vez, posiblemente muchas veces, y devuelves ese valor.

Resuélvelo sin cambiar nums y usando solo una cantidad constante de memoria adicional.

Función

findDuplicate(nums: integer-array) → integer
numsinteger-array
n+1 enteros, cada uno entre 1 y n
Devuelveinteger
el valor que aparece más de una vez

Restricciones

  • 1 ≤ n ≤ 104
  • nums.length == n+1
  • 1 ≤ nums[i] ≤ n
  • Exactamente un valor aparece dos o más veces; todos los demás valores aparecen como máximo una vez.

Ejemplos

Entrada
nums = [2, 5, 1, 3, 5, 4]
Salida
5
Explicación
Aquí n es 5, y el 5 aparece en las posiciones 1 y 4, así que la respuesta es 5. Todos los demás valores del 1 al 5 aparecen una vez.

lock icon+17 pruebas ocultas al enviar

challenge icon

Para ir más allá

La búsqueda binaria sobre valores mantiene ambas reglas en tiempo O(n log n). ¿Puedes mantenerlas en tiempo O(n)?

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

Caso 1

Caso 2

Entrada

nums = [2, 5, 1, 3, 5, 4]

Esperado

5