У нас есть список/массив чисел (положительные и отрицательные значения возможны).Максимальная несегментная сумма
Сегмент определяется как смежная подпоследовательность цифр. Например, [1; -2; 3; 4; 5] - это массив, а его сегмент - [1; -2; 3] или [-2; 3; 4] и т. Д. Все числа в сегменте должны быть смежным.
Не-сегмент определяется как все подпоследовательности массива, за исключением всех сегментов. Таким образом, смежные числа возможны в несегменте, но должно быть не менее двух чисел, которые не являются смежными.
Например, [1; 3; 4] не является сегментом, [1; -2; 3; 5] также является несегментным, поскольку 3 и 5 не являются смежными (имеется «4», между ними в исходном массиве).
Вопрос в том, что представляет собой несегмент, имеющий максимальную сумму?
Примечание
- Числа могут быть сочетание позитивы и негативы
- Это не проблема http://algorithmsbyme.wordpress.com/2012/07/29/amazon-interview-question-maximum-possible-sum-with-non-consecutive-numbers/ или Maximum sum of non consecutive elements. В этих проблемах никакие числа не могут быть смежными и все числа положительны.
Это проблема 11 в книге Pearls of functional algorithm design и говорит, что есть линейный способ решить.
Но я не могу понять и не найти линейный путь. Поэтому я стараюсь здесь.
Я понял путь от этой книги перед вашим ответом. Благодарю. Также я думаю, что этот функциональный способ - лучшее мышление и поможет также императивному пути. Вы читали эту книгу? –