Une sous-séquence est une séquence qui peut être dérivée d'une autre séquence en supprimant certains éléments sans modifier l'ordre des éléments restants. Une sous-séquence strictement croissante est une sous-séquence dans laquelle chaque élément est plus grand que le précédent.
La sous-séquence croissante la plus lourde d'une séquence est la sous-séquence strictement croissante qui a la plus grande somme d'éléments.
Implémentez un programme ou une fonction dans la langue de votre choix qui trouve la somme des éléments de la sous-séquence croissante la plus lourde d'une liste donnée d'entiers non négatifs.
Exemples:
[] -> 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])
Notez que vous n'avez qu'à donner la somme des éléments de la sous-séquence croissante la plus lourde, pas la sous-séquence elle-même.
Le code asymptotiquement le plus rapide gagne, avec une taille de code plus petite en octets comme bris d'égalité.