文章

99

粉丝

120

获赞

8

访问

75.1k

头像
乘积最大子数组 152
备考笔记
发布于2024年9月6日 17:02
阅读数 742

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());
    }
};

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发