文章
99
粉丝
120
获赞
8
访问
98.4k
class Solution {
public:
int maxProduct(vector<int>& nums) {
//f1,f2:以第i个数结尾的乘积最大,最小的子数组乘积。
//最小的对应负数的情况,负负得正。
vector<int>f1(nums), f2(nums);
for(int i = 1; i < nums.size(); i++){
f1[i] = max(f1[i-1]*nums[i], max(nums[i],f2[i-1]*nums[i]));
f2[i] = min(f2[i-1]*nums[i], min(nums[i],f1[i-1]*nums[i]));
}
return *max_element(f1.begin(),f1.end());
}
};
登录后发布评论
暂无评论,来抢沙发