java 求数组最大子序列之和

时间:2021-11-12 00:41:17

经典问题:

给定一个int[]数组,求其最大子序列之和(条件:数组中不全部都是负数)。

最优算法,线性时间复杂度:

public static int maxSubSum(int[] a){
    int maxSum = 0;
    int thisSum = 0;
    for(int i=0; i<a.length; i++){
        thisSum += a[i];
        if(thisSum > maxSum)
            maxSum = thisSum;
        else if(thisSum<0)
             thisSum = 0;
    }  
     return maxSum;
}