Подпоследовательность - это последовательность, которая может быть получена из другой последовательности путем удаления некоторых элементов без изменения порядка оставшихся элементов. Строго возрастающая подпоследовательность - это подпоследовательность, в которой каждый элемент больше предыдущего.
Самая тяжелая возрастающая подпоследовательность последовательности - строго возрастающая подпоследовательность, которая имеет наибольшую сумму элементов.
Реализуйте программу или функцию на выбранном вами языке, которая найдет сумму элементов самой тяжелой возрастающей подпоследовательности данного списка неотрицательных целых чисел.
Примеры:
[] -> 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])
Обратите внимание, что вам нужно дать только сумму элементов самой тяжелой возрастающей подпоследовательности, а не саму подпоследовательность.
Асимптотически быстрый код выигрывает, с меньшим размером кода в байтах в качестве тай-брейка.