La primera versión rota
- O(log n) · Fácil
- Gratis
- Python
- JavaScript
- listas
- búsqueda
- booleanos
Enunciado
Cada revisión cuesta una tarde entera: instalar la versión, jugarla hasta el jefe final y ver si el juego se congela. El estudio publicó sus versiones en orden, y en alguna se coló un error que ya no se fue: desde ésa, todas las que siguen lo traen.
Recibes una lista de booleanos, uno por versión: falso si funciona y verdadero si está rota. Siempre vienen primero todas las buenas y después todas las rotas. Regresa la posición de la primera rota, contando desde 0. Con cinco versiones donde solo las dos primeras funcionan, regresas 2.
Si ninguna está rota, o la lista viene vacía, regresas -1.
No las revises de una en una: mira la de en medio y descarta la mitad donde no puede estar la primera rota, como en un diccionario.
Ejemplos
Dos buenas y tres rotas
[false, false, true, true, true] → 2
Solo la última está rota
[false, false, false, false, false, true] → 5
Dos versiones
[false, true] → 1
Muchas versiones
[false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true] → 9
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def primera_rota(versiones):
passJavaScript
function primeraRota(versiones) {
}Se abre en el navegador, con el editor y las pruebas. Es gratis y no hace falta cuenta para empezar.
Más retos de O(log n)
- La sección de la páginalistas · búsqueda · índices
- Las balizas que faltanlistas · búsqueda · índices
- Las capturas del mismo pesolistas · búsqueda · índices
- Las compuertas del canaldiccionarios · búsqueda · listas
- Las parcelas cuadradasdivisión · búsqueda · operaciones
- Las sacas que se acumulanoperaciones · búsqueda · ciclos