先计算从左到右的相乘的最大值,再计算从右到左的最大值
int maxProduct(vector<int>& nums) {
int cur = 1;
int max = INT_MIN;
for(int i=0;i<nums.size();++i){
cur*=nums[i];
max=(cur>max) ? cur : max;
cur=(nums[i]==0)?1:cur;
}
cur=1;
for(int i=nums.size()-1;i>=0;--i){
cur*=nums[i];
max=(cur>max) ? cur : max;
cur=(nums[i]==0)?1:cur;
}
return max;
}