Las horas de los testigos
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- listas
- ordenar
- comparaciones
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):
passJavaScript
function masCerca(golpes, luces) {
}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)
- Las horas vigiladastextos · listas · ordenar
- Las macetas del jardíndiccionarios · ordenar · índices
- Las sombrillas de la playalistas · ordenar · comparaciones
- Las sondas antes del plazolistas · ordenar · booleanos
- Las vigas del templolistas · ordenar · comparaciones
- Lo que se vendió una sola vezlistas · ordenar · ciclos