Пардон, ошибка от невнимательности. Вот правильный вариант:
Сворачиваете массив данных, суммируя соседние данные одного знака. Исходный массив
time | 7:00 | 7:05 | 7:10 | 7:15 | 7:20 | 7:25 | 7:30 | 7:35 | 7:40 | 7:45 | 7:50 | func | -19 | 17 | 1 | 23 | -8 | 12 | -11 | -2 | 13 | 11 | -10 |
|
преобразуется в
time | 7:00 | 7:05-7:15 | 7:20 | 7:25 | 7:30-7:35 | 7:40-7:45 | 7:50 | func | -19 | 41 | -8 | 12 | -13 | 24 | -10 |
|
Следующий этап свёртки такой: Если абс. значение отрицательного элемента меньше значения каждого из положительных соседей - эти три элемента сворачиваются в один (само собой, краевые отрицательные алгоритм игнорирует, у них нет одного из соседей). Этап повторяется, пока возможно.
На первом шаге массив
time | 7:00 | 7:05-7:15 | 7:20 | 7:25 | 7:30-7:35 | 7:40-7:45 | 7:50 | func | -19 | 41 | -8 | 12 | -13 | 24 | -10 |
|
преобразуется в
time | 7:00 | 7:05-7:25 | 7:30-7:35 | 7:40-7:45 | 7:50 | func | -19 | 45 | -13 | 24 | -10 |
|
Возможен ещё один шаг этапа, он даёт
time | 7:00 | 7:05-7:45 | 7:50 | func | -19 | 56 | -10 |
|
Ответ: интервал 7:05-7:45, сумма 56.