您的位置:首页 > 其它

152. Maximum Product Subarray LeetCode

2016-03-17 22:39 363 查看
题意:给一个数组,求最大连续字段积。

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

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode