152. Maximum Product Subarray
problem description
Input: [2,3,-2,4]
Output: 6
Explanation: [2,3] has the largest product 6.Input: [-2,0,-1]
Output: 0
Explanation: The result cannot be 2, because [-2,-1] is not a subarray.algorithm thought
code
class Solution {
public:
int maxProduct(vector<int>& nums) {
int mi=nums[0];
int ma=nums[0];
int res=nums[0];
for(int i=1;i<nums.size();++i){
if(nums[i]<0)
swap(mi,ma);
mi=min(nums[i],mi*nums[i]);
ma=max(nums[i],ma*nums[i]);
res=max(res,ma);
}
return res;
}
};algorithm analysis
Last updated