leecode第一百五十二题(乘积最大子序列)

class Solution {
public:
    int maxProduct(vector<int>& nums) {
        int len=nums.size();
        int result=INT_MIN;
        int imax=1;
        int imin=1;
        
        for(int i=0;i<len;i++)
        {
            if(nums[i]<0)
            {
                int temp=imax;
                imax=imin;
                imin=temp;
            }
            imax=max(imax*nums[i],nums[i]);
            imin=min(imin*nums[i],nums[i]);
            result=max(result,imax);
        }
        return result;
    }
};

分析:

负数反转我真没想到。

posted @ 2019-07-22 11:30  深夜十二点三十三  阅读(100)  评论(0编辑  收藏  举报