思路:动态规划
因为可能会出现正负的情况所以直接把所有的max和min的情况都进行比较
class Solution {
public:
int maxProduct(vector<int>& nums) {
if(nums.size()==1){
return nums[0];
}
int imax = nums[0],imin = nums[0],res = nums[0];
for(int i=1;i<nums.size();i++){
int tem = imax;
imax = max(imax*nums[i],max(imin*nums[i],nums[i]));
imin = min(imin*nums[i],min(tem*nums[i],nums[i]));
res = max(res,imax);
}
return res;
}
};
参考视频:
力扣152