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; }