数组中非连续元素的最大和

时间:2019-04-17 16:29:37

标签: c

所以我在算法上做了这个问题,我必须找到一个数组中非连续元素的最大和,并采用DP方法。虽然总和很容易获得,但我无法弄清楚如何获得各个子解决方案(或构成最大总和的数字)。

我尝试检查要插入的元素是否是相邻元素。

int MaxSum(int arr[], int n) {
    int a[n/2];
    int inc = arr[0]; 
    int exc = 0; 
    int exc_n; 
    int i, pos = -1, j = 0; 

    for (i = 1; i < n; i++) 
    { 
        if (inc > exc)
        {
            exc_n = inc;
            if (pos + 1 != i){
            a[j] = arr[i];  
            j++;
            pos = i;
        }
        else
        {
            exc_n = exc;
        }
        inc = exc + arr[i]; 
        exc = exc_n; 
    } 

    return ((inc > exc) ? inc : exc); 
}

我需要返回构成满足“非相邻”条件的最大和的元素。我在做什么错了,我该怎么办?

0 个答案:

没有答案