Eine Teilsequenz ist eine Sequenz, die durch Löschen einiger Elemente aus einer anderen Sequenz abgeleitet werden kann, ohne die Reihenfolge der verbleibenden Elemente zu ändern. Eine streng ansteigende Teilfolge ist eine Teilfolge, bei der jedes Element größer als das vorhergehende ist.
Die am stärksten zunehmende Teilsequenz einer Sequenz ist die streng zunehmende Teilsequenz mit der größten Elementsumme.
Implementieren Sie ein Programm oder eine Funktion in der Sprache Ihrer Wahl, die die Elementsumme der am stärksten ansteigenden Teilsequenz einer bestimmten Liste nicht negativer Ganzzahlen ermittelt.
Beispiele:
[] -> 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])
Beachten Sie, dass Sie nur die Elementsumme der am stärksten ansteigenden Teilsequenz angeben müssen, nicht die Teilsequenz selbst.
Der asymptotisch schnellste Code gewinnt mit einer kleineren Codegröße in Bytes als Tiebreaker.