问题:给定(可能有负的)整数A1,A2,A3.........An,求子序列的最大值。(为了方便起见,如果所有整数均为负数,则最大子序列的和为0)
解释下题目:子序列为连续的序列,比如有2,-1,4,3,5,-2,7,4,-8;子序列-1,4,3,5的和为11.则最大子序列为2,-1,4,3,5,-2,7,4.
这个问题有很多种解法,下面列举几种:
for循环穷举所有的可能
public static int maxSubSum(int [] a){
int maxSum = 0;
for (int i=0;i<a.length;i++){
for (int j = i; j <a.length ; j++) {
int thisSum = 0;
for (int k = i; k <=j ; k++){
thisSum +=a[k];
}
if(thisSum>maxSum){
maxSum = thisSum;
}
}
}