La subida más larga
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- listas
- ciclos
Enunciado
Escribe una función que reciba una lista de números y regrese cuántos números tiene la subida más larga que se puede armar con ellos.
Una subida es un grupo de números que tomas de la lista sin cambiarlos de orden, y donde cada uno es más grande que el anterior. Lo importante: no tienen que estar seguidos en la lista, puedes saltarte los que estorben. Mira la lista 3, 10, 2, 1, 20. Si solo valieran los números pegados, lo mejor sería 3 y 10: dos. Pero te saltas el 2 y el 1, y te quedan 3, 10 y 20: tres números, cada uno más grande que el de antes y en el mismo orden en que aparecen. Por eso la respuesta es 3, aunque esos tres no estén pegados en la lista.
Las reglas: "más grande" es más grande de verdad, así que dos números iguales no continúan la subida. Con un solo número la respuesta es 1, y con la lista vacía es 0.
Una pista: recorre la lista y, para cada número, mira todos los anteriores que sean más chicos. La subida más larga que terminaba en alguno de ellos, más este número, es la subida más larga que termina aquí. Ve guardando ese resultado en otra lista para no volver a calcularlo.
Ejemplos
Sube y baja
[10, 22, 9, 33, 21, 50, 41, 60] → 5
Tres que no están pegados
[3, 10, 2, 1, 20] → 3
El más grande al principio
[50, 3, 10, 7, 40, 80] → 4
Ya viene ordenada
[1, 2, 3, 4, 5] → 5
De mayor a menor
[9, 7, 5, 3] → 1
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def subida_mas_larga(nums):
passJavaScript
function subidaMasLarga(nums) {
}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²)
- La vela entre dos mástileslistas · ciclos · comparaciones
- Las antenas que se vencomparaciones · ciclos · listas
- Las cepas más parecidastextos · listas · ciclos
- Las cifras de la esfingedígitos · textos · índices
- Las fichas del atrilciclos · listas · textos
- Las justas del torneocomparaciones · ciclos · listas