题目:输入一个vector数组,数组里面有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
1 int FindGreatestSumOfSubArray(vector<int> array) { 2 int maxSum; 3 if(array.size()<=0) 4 return maxSum; 5 int pSum = 0; 6 maxSum = array[0]; 7 for(int i=0;i<array.size();i++){ 8 pSum+=array[i]; 9 maxSum=maxSum>pSum?maxSum:pSum; 10 if(pSum<=0) 11 pSum = 0; 12 } 13 return maxSum; 14 }