Skip to content

Latest commit

 

History

History
21 lines (20 loc) · 464 Bytes

File metadata and controls

21 lines (20 loc) · 464 Bytes
class Solution {
public:
    int maxProduct(vector<int>& nums) {
        int n = nums.size();
        if (!n) return 0;
        
        int res = nums[0];
        int mn = res, mx = res;
        for (int i = 1; i < n; i++)
        {
            if (nums[i] < 0)
                swap(mn, mx);
            mx = max(nums[i], nums[i] * mx);
            mn = min(nums[i], nums[i] * mn);
            res = max(res, mx);
        }
        return res;
    }
};