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.
找出最大连续乘积。
与最大连续和类似,但有不同。
最大值可能是由当前最大正值乘正值,也有可能是由当前最小负值乘负值得到,
如果乘当前值导致绝对值变小,则可以以这个值作为新起点。
代码语言:javascript复制class Solution {
public:
int maxProduct(vector<int>& nums)
{
int res = nums[0];
int minn = nums[0];
int maxx = nums[0];
for(int i = 1; i< nums.size();i )
{
int x = maxx*nums[i];
int y = minn*nums[i];
maxx = max(max(x, y), nums[i]);
minn = min(min(x, y), nums[i]);
res = max(res, maxx);
}
return res;
}
};


