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 };

 

posted @ 2018-05-07 16:42  __Meng  阅读(127)  评论(0编辑  收藏  举报