Codility,第14课,任务TieRopes(https://codility.com/demo/take-sample-test/tie_ropes)。简要地说,问题是将正整数列表A
划分为具有至少K
的总和的(连续的)子列表的最大数量。
我只想出了一个贪心解决方案,因为这是这节课的名称。它通过了所有测试,但我不知道它是否是最优解(如果它是最优解的话)。
int solution(int K, vector<int> &A) {
int sum = 0, count = 0;
for (int a : A)
{
sum += a;
if (sum >= K)
{
++count;
sum = 0;
}
}
return count;
}
有人能告诉我这个解决方案是否最优以及为什么吗?