java 求数组最大子序列之和

经典问题:

给定一个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;
}

 

 

 

posted @ 2014-03-21 13:57  XIAOSHUA  阅读(559)  评论(0编辑  收藏  举报