【发布时间】:2012-10-23 09:09:37
【问题描述】:
我有这个问题,给定一个正数数组,我必须找到元素的最大总和,这样就不会选择两个相邻的元素。最大值必须小于某个给定的 K。我尝试在没有 k 的情况下考虑类似问题的思路,但到目前为止我失败了。对于后一个问题,我有以下 dp-ish 解决方案
int sum1,sum2 = 0;
int sum = sum1 = a[0];
for(int i=1; i<n; i++)
{
sum = max(sum2 + a[i], sum1);
sum2 = sum1;
sum1 = sum;
}
有人可以给我提示如何解决我目前的问题吗?
【问题讨论】:
-
2 个元素的最大总和使得没有两个相邻元素被选中? 2个或更多?
-
在不选取相邻元素的情况下,对数组中所有元素获得的最大总和...
标签: algorithm