最大连续数列和

题目描述

对于一个有正有负的整数数组,请找出总和最大的连续数列。

给定一个int数组A和数组大小n,请返回最大的连续数列的和。保证n的大小小于等于3000。

测试样例:
[1,2,3,-6,1]
返回:6
class MaxSum {
public:
    int getMaxSum(vector<int> A, int n) {
        // write code here
        if(A.size() == 0)
            return 0;
        
        int max = INT_MIN;
        int sum = 0;
        for(size_t i = 0; i < A.size(); i++){
               if(sum < 0)
                sum = A[i];
            else
                sum += A[i];
            
            if(sum > max)
                max = sum;
        }
        
        return max;
    }
};

 

posted on 2017-04-19 04:32  123_123  阅读(130)  评论(0编辑  收藏  举报