152. Maximum Product Subarray

来源:互联网 发布:电脑行业数据分析报告 编辑:程序博客网 时间:2024/04/23 17:00

Find the contiguous subarray within an array (containing at least one number) which has the largest product.

For example, given the array [2,3,-2,4],

the contiguous subarray [2,3] has the largest product = 6.

1.我的解答

记下min,max,nums[i].并求max为max(min*nums[i], max*nums[i],nums[i]); 同理,min为min(min*nums[i], max*nums[i],nums[i]);

class Solution {public:    int maxProduct(vector<int>& nums) {        int maxn = nums[0];        int minn = nums[0];        int res = nums[0];        int m = maxn, n = minn;        for(int i = 1; i < nums.size(); i++){            maxn = max(max(m*nums[i],n*nums[i]),nums[i]);            minn = min(min(m*nums[i],n*nums[i]),nums[i]);            res = max(res,maxn);            m = maxn;            n = minn;        }        return res;    }};


0 0