class Solution {
public:
int maxProduct(vector<int>& nums) {
int n = nums.size();
int iMax = nums[0], iMin = nums[0], ans = nums[0];
for(int i = 1; i < n; ++i){
int tMax = iMax, tMin = iMin;
iMax = max(tMax * nums[i], max(tMin * nums[i], nums[i]));
iMin = min(tMax * nums[i], min(tMin * nums[i], nums[i]));
ans = max(ans, iMax);
}
return ans;
}
};
Accepted
188/188 cases passed (8 ms)
Your runtime beats 49.04 % of cpp submissions
Your memory usage beats 38.61 % of cpp submissions (13.4 MB)