一种新型的方法。传统的方法都是从前往后遍历,这里通过从后往前遍历,简化了问题,每次遍历一个元素时只需判断该元素之后的元素值即可,一次遍历即可解决问题。
/**
*
* @param array int整型一维数组
* @param arrayLen int array数组长度
* @return int整型
*/
int FindGreatestSumOfSubArray(int* array, int arrayLen ) {
// write code here
int max=0x80000000;
for(int i=arrayLen-1;i>=0;i--)
{
int j=i+1;
if(j<arrayLen&&array[j]>0)
array[i]=array[i]+array[j];
if(array[i]>max)
max=array[i];
}
return max;
}