maximum-subarray

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array[−2,1,−3,4,−1,2,1,−5,4],
the contiguous subarray[4,−1,2,1]has the largest sum =6.

//贪心算法,获取连续子数组和的最大值
class Solution {
public:
    int maxSubArray(int A[], int n) {
        if(n<=0)
            return 0;
        
        int sum = 0;
        int max = INT_MIN;
        for(int i = 0;i < n;i++){
            sum+=A[i];
            if(sum>max){
                max = sum;
            }
            if(sum <0)
                sum = 0;
        }
        return max;
    }
};

 

posted on 2017-03-07 11:35  123_123  阅读(84)  评论(0编辑  收藏  举报