数组的最大子序列
{1,-2,3,10,-4,7,2,-5}
思路1:枚举所有的子数组并求出他们的和,取最大值;n(n+1)/2=O(n^2)
思路2:从头到尾累加,初始和为0
代码实现
public int FindGreatestSumOfSubArray(int[] array) {
boolean isNullArray=false;
int greatest=array[0],sum=array[0];
if(array.length<=0){
isNullArray=true;
return -1;
}
for (int i=1;i<array.length;i++) {
sum=array[i]>sum+array[i]?array[i]:sum+array[i];
greatest=greatest>sum?greatest:sum;
}
return greatest;
}