动态规划-找出最大和

//不能选择相邻的两个数;找出最大和;递推完成
//用数组保存起来;

#include <iostream>
#include <algorithm>
using namespace std;

int arr[]={1,2,4,1,7,8,3};

int rec_opt(int n)
{
    int opt[sizeof(arr)+20];
    memset(opt,0,sizeof(opt));
    opt[0] = arr[0];
    opt[1] = max(arr[1],arr[0]);

    for(int i=2; i<=n ; i++)
        opt[i] = max(opt[i-1],opt[i-2]+arr[i]);
    return opt[n];
}

int main()
{
    cout << rec_opt(6) << endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36086886/article/details/80004030