c_cpp 求数组的子数组之和的最大值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 求数组的子数组之和的最大值相关的知识,希望对你有一定的参考价值。

int MaxSum(int* arr,int n){
    int start = arr[n-1];
    int all = arr[n-1];
    for(int i=n-2;i>=0;i--){
        start = max(arr[i],start+arr[i]);
        all = max(start,all);
    }
    return all;
}

int MaxSum(int* arr,int n){
    int start = arr[n-1];
    int all = arr[n-1];
    for(int i=n-2;i>=0;i--){
        if(start <0)
            start =0;
        start += arr[i];
        if(start > all)
            all = start;
    }
    return all;
}

以上是关于c_cpp 求数组的子数组之和的最大值的主要内容,如果未能解决你的问题,请参考以下文章

编程之美 2.14求数组的子数组之和的最大值

编程之美2.14 求数组的子数组之和的最大值

求数组的子数组之和的最大值及扩展问题2

求数组的子数组之和的最大值及扩展问题2

求数组最大字数组之和第一部

动态规划求最大子序列之和以及序列号