152. Maximum Product Subarray LeetCode

来源:互联网 发布:台达dvp plc编程技巧 编辑:程序博客网 时间:2024/05/12 02:46

题意:给一个数组,求最大连续字段积。
题解:这个跟最大连续子段和是一个套路,不过这里需要维护最大连续字段和和最小连续子段和,因为他们之间是互相转换的。

class Solution {public:    int maxProduct(vector<int>& nums) {        int n = nums.size();        if(n == 0) return 0;        int local_min = nums[0],local_max = nums[0];        int maxn = nums[0];        for(int i = 1; i < n; i++)        {            int tmp = local_max;            local_max = max(nums[i],max(local_max * nums[i],local_min * nums[i]));            local_min = min(nums[i],min(local_min * nums[i],tmp * nums[i]));            maxn = max(maxn,local_max);        }        return maxn;    }};
0 0
原创粉丝点击