s4553711
5/30/2017 - 2:56 PM

152.cpp

class Solution {
public:
    int maxProduct(vector<int>& nums) {
        int ret = nums[0], cmax = nums[0], cmin = nums[0];
        for(int i = 1; i < nums.size(); i++) {
            int temp = cmax;
            cmax = max(max(cmax*nums[i], cmin*nums[i]), nums[i]);
            cmin = min(min(temp*nums[i], cmin*nums[i]), nums[i]);
            ret = max(cmax, ret);
        }
        return ret;
    }
};