[leetcode]152. Maximum Product Subarray

53题的升级版
https://mp.csdn.net/mdeditor/84856498#

class Solution {
    public int maxProduct(int[] nums) {
        int[] premax=new int[nums.length];
        int[] premin=new int[nums.length];
        premax[0]=nums[0];
        premin[0]=nums[0];
        int res=nums[0];
        
        for(int i=1;i<nums.length;i++){
            premax[i]=Math.max(Math.max(premax[i-1]*nums[i],premin[i-1]*nums[i]),nums[i]);
            premin[i]=Math.min(Math.min(premax[i-1]*nums[i],premin[i-1]*nums[i]),nums[i]);
            
            res=Math.max(res,premax[i]);
        }
        
        return res;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_36869329/article/details/84986043