class Solution {
public:
    int FindGreatestSumOfSubArray(vector<int> array) 
    {
        // 最大子序列的第一个数应为正数
        int num = array.size();
        int sum = 0; 
        int max = *max_element(array.begin(), array.end()); // array中的最大元素
        for(int i=0; i<num; i++)
        {
            sum += array[i];
            if(sum >= max) 
            {
                max = sum;
            }
            if(sum <= 0)  
            {
                sum = 0;
            }
        }
        return max;
    }
};