连续子数组的最大乘积

class Solution {  
public:  
    int maxProduct(vector<int>& nums) {  
        int last_max = nums[0];  
        int last_min = nums[0];  
        int result = nums[0];  
        int cur_max = nums[0];  
        int cur_min = nums[0];  

        for(int i = 1; i < nums.size(); i ++)  
        {  
            cur_max = max(nums[i], max(last_max * nums[i], last_min * nums[i]));  
            cur_min = min(nums[i], min(last_max * nums[i], last_min * nums[i]));  
            result = max(result, cur_max);  
            last_max = cur_max;  
            last_min = cur_min;  
        }  

        return result;  
    }  
};  
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页