Проблема, обнаруженная в столбце 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);
}
Я хотел бы знать, как можно изменить указанный выше алгоритм, чтобы получить минимальную сумму .