1、用数组保存起来p220的f(i)
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array.length<1) return 0;
int max = array[0];
int[] endWithIndexISum = new int[array.length];
endWithIndexISum[0] = array[0];
for(int i=1;i<array.length;i++)
{
if(endWithIndexISum[i-1]<0)
endWithIndexISum[i] = array[i];
else
endWithIndexISum[i] = endWithIndexISum[i-1]+array[i];
if(endWithIndexISum[i]>max)
max = endWithIndexISum[i];
}
return max;
}
}
2、没有保存
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array.length<1) return 0;
int max = array[0];
int endWithIndexISum;
int PreEndWithIndexISum=array[0];
for(int i=1;i<array.length;i++)
{
if(PreEndWithIndexISum<0)
endWithIndexISum = array[i];
else
endWithIndexISum = PreEndWithIndexISum+array[i];
if(endWithIndexISum>max)
max = endWithIndexISum;
PreEndWithIndexISum = endWithIndexISum;
}
return max;
}
}