一、题目
二、代码
//左边一轮 右边一轮
//以0为分届
//最大值有两种可能出现的情况(因为是整数 所以越乘越大)
//偶数个负数 全乘
//奇数个负数 去掉右边最后一个负数及之后的部分
// 去掉左边左后一个负数及之后的部分
class Solution
{
public:
int maxProduct(vector<int>& nums)
{
int i,j;
int max=nums[0];
int base;
//左边一轮
base=1;
for(i=0;i<nums.size();i++)
{
base=base*nums[i];
if(base>max) max=base;
if(nums[i]==0) base=1;
}
//右边一轮
base=1;
for(i=nums.size()-1;i>=0;i--)
{
base=base*nums[i];
if(base>max) max=base;
if(nums[i]==0) base=1;
}
return max;
}
};