31 连续子数组的最大和
输入一个整型数组,数组里有正数也有负数,求所有子数组的和的最大值,要求时间复杂度为O(n)
C++:
1 class Solution { 2 public: 3 int FindGreatestSumOfSubArray(vector<int> array) { 4 if (array.empty()) 5 return 0 ; 6 int Max = array[0] ; 7 int sum = 0 ; 8 for(int num : array){ 9 if (sum <= 0){ 10 sum = num ; 11 }else{ 12 sum += num ; 13 } 14 if (sum > Max) 15 Max = sum ; 16 } 17 return Max ; 18 } 19 };