您的位置:首页 > 其它

数组非连续元素最大和

2012-07-23 03:28 337 查看
原题:http://tech-queries.blogspot.com/2009/05/max-possible-sum-of-non-consecutive.html

这里使用DP来解答

但是既然都不是连续的 而且是一个正数数组 那么只有2中情况 一种是奇数idx 一种是偶数idx

不过还是给出DP代码:

#include <cstdlib>
#include <algorithm>

int findMaxSum(int* a, int n)
{
int* s = (int*)malloc(sizeof(int) * n);

s[0] = a[0];
s[1] = a[1];

int maxSum = std::max(s[0], s[1]);
for(int i = 2; i < n; i++)
{
s[i] = std::max(s[i - 1], s[i - 2] + a[i]);

if(s[i] > maxSum)
maxSum = s[i];
}

return maxSum;
};

int main()
{
int a[] = {6, 4, 2, 8, 1};

int res = findMaxSum(a, 5);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: