class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int n = nums.size(), lMax = 0, gMax = nums[0];
        for(int i = 0; i < n; ++i)    {
            lMax += nums[i];
            gMax = max(gMax, lMax);
            if(lMax<0)  
                lMax = 0;
        }
        return gMax;
    }
};