Una subsecuencia es una secuencia que puede derivarse de otra secuencia eliminando algunos elementos sin cambiar el orden de los elementos restantes. Una subsecuencia estrictamente creciente es una subsecuencia en la cual cada elemento es más grande que el precedente.
La subsecuencia creciente más pesada de una secuencia es la subsecuencia estrictamente creciente que tiene la mayor suma de elementos.
Implemente un programa o función en su idioma de elección que encuentre la suma de elementos de la subsecuencia creciente más pesada de una lista dada de enteros no negativos.
Ejemplos:
[] -> 0 ([])
[3] -> 3 ([3])
[3, 2, 1] -> 3 ([3])
[3, 2, 5, 6] -> 14 ([3, 5, 6])
[9, 3, 2, 1, 4] -> 9 ([9])
[3, 4, 1, 4, 1] -> 7 ([3, 4])
[9, 1, 2, 3, 4] -> 10 ([1, 2, 3, 4])
[1, 2, 4, 3, 4] -> 10 ([1, 2, 3, 4])
[9, 1, 2, 3, 4, 5, 10] -> 25 ([1, 2, 3, 4, 5, 10])
[3, 2, 1, 2, 3] -> 6 ([1, 2, 3])
Tenga en cuenta que solo tiene que dar al elemento la suma de la subsecuencia creciente más pesada, no la subsecuencia misma.
El código asintóticamente más rápido gana, con un tamaño de código más pequeño en bytes como un desempate.