Saltar al contenido

Las horas de los testigos

Enunciado

«Oí golpes en los minutos 12, 40 y 65», dijo el portero. La cocinera, desde el otro lado del patio, vio luces en los minutos 30 y 61. El detective Salas cree que un golpe y una luz muy juntos son el mismo suceso, y quiere saber qué tan juntos quedaron.

Recibes golpes y luces, dos listas de minutos (enteros de 0 en adelante), en cualquier orden y con posibles repetidos. Regresa un entero: la menor distancia entre un minuto de golpes y uno de luces, sin importar cuál va primero. La pareja siempre es un golpe con una luz: dos golpes muy juntos no cuentan. Aquí regresas 4, por el 65 y el 61.

Si un golpe y una luz caen en el mismo minuto, regresas 0. Si alguna de las dos listas viene vacía, no hay pareja: regresas -1.

Ejemplos

  • Los testigos del patio

    [12, 40, 65], [30, 61] → 4

  • Dos golpes juntos no cuentan

    [10, 11], [50, 3] → 7

  • El mismo minuto

    [5, 20, 33], [33, 1] → 0

  • Minutos de una a tres cifras

    [100, 7, 58], [9, 70, 120] → 2

  • Nadie vio luces

    [9], [] → -1

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def mas_cerca(golpes, luces):
    pass

JavaScript

function masCerca(golpes, luces) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n log n)

Ver todos los retos →