У меня есть O (N) время и O (1) пространственное решение для максимальной суммы подмножества без смежных элементов ниже. Сейчас я пытаюсь напечатать как максимальную сумму, так и индексы, составляющие решение.
Пример: ввод [7, 10, 12, 7, 9, 14] будет return [[33], [7, 12, 14]].
Кто-нибудь знает, как я смогу отслеживать индексы значений, составляющих максимальную сумму?
public int MaxSum(int[] input)
{
if (input.Length == 0)
return 0;
if (input.Length == 1)
return input[0];
int second = input[0];
int first = Math.Max(input[0], input[1]);
for (int i = 2; i < input.Length; i++)
{
int currentMax = Math.Max(first, second + input[i]);
second = first;
first = currentMax;
}
return first;
}