サブシーケンスは、残りの要素の順序を変更せずに一部の要素を削除することにより、別のシーケンスから派生できるシーケンスです。厳密に増加するサブシーケンスは、すべての要素が前の要素よりも大きいサブシーケンスです。
シーケンスの最も大きく増加するサブシーケンスは、要素の合計が最大である厳密に増加するサブシーケンスです。
非負整数の特定のリストの最も大きく増加するサブシーケンスの要素合計を見つけるプログラムまたは関数を、選択した言語で実装します。
例:
[] -> 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])
サブシーケンス自体ではなく、最も大きく増加するサブシーケンスの要素合計を与えるだけでよいことに注意してください。
漸近的に最速のコードが優先され、タイブレーカーとしてコードサイズがバイト単位で小さくなります。