Coartadas cruzadas
- O(n) · Media
- Plan completo
- Python
- JavaScript
- listas
- índices
- comparaciones
Enunciado
"Una sola lista, y en orden", pide la inspectora Ríos. Dos agentes siguieron al sospechoso y cada uno anotó, de menor a mayor, las horas en que lo vio. Las libretas son larguísimas y ya vienen en orden: volver a ordenar todo sería tirar ese trabajo.
Escribe una función que reciba primera y segunda, dos listas de enteros ordenadas de menor a mayor (915 son las 9:15), y regrese una lista nueva con todas las horas de las dos, en orden. Recórrelas a la vez, con un índice en cada una: compara las dos horas que te tocan, pasa la menor a la lista nueva y avanza solo en esa lista. Cuando una se acaba, copia lo que quede de la otra. Sin sorted ni .sort().
Las horas repetidas se quedan todas, en la misma lista o entre las dos. Cualquiera de las listas, o las dos, puede venir vacía.
Por ejemplo, con [800, 930, 1100] y [845, 930, 1500] regresas [800, 845, 930, 930, 1100, 1500].
Ejemplos
El del ejemplo
[800, 930, 1100], [845, 930, 1500] → [800, 845, 930, 930, 1100, 1500]
Varias seguidas de la misma
[100, 400, 700, 2300], [200, 300, 500, 600, 800] → [100, 200, 300, 400, 500, 600, 700, 800, 2300]
La primera viene vacía
[], [700, 1200] → [700, 1200]
La primera se acaba pronto
[600], [700, 800, 900, 1000, 1100] → [600, 700, 800, 900, 1000, 1100]
Repetidos en las dos
[900, 900, 1000], [900, 1000] → [900, 900, 900, 1000, 1000]
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def junta_horas(primera, segunda):
passJavaScript
function juntaHoras(primera, segunda) {
}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.