Проблема, обнаруженная в столбце 8 программных жемчужин, выглядит следующим образом:
По заданному вещественному вектору x[n] вычислить максимальную сумму, найденную в любом непрерывном подвекторе.
Предоставленное окончательное решение имеет сложность O (n), которая выглядит следующим образом:
std::vector<int> x;
int max_so_far = 0;
int max_here = 0;
for (std::size_t i = 0; i < x.size(); ++i)
{
max_here = std::max(max_here + x[i], 0);
max_so_far = std::max(max_so_far, max_here);
}
Я хотел бы знать, как изменить приведенный выше алгоритм, чтобы обеспечить минимальную сумму.
max_so_far
равным наименьшему целому числу. - person Jim Mischel   schedule 08.02.2011