力扣152. 乘积最大子数组

给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。

在这里插入图片描述

class Solution {
    
    
    public int maxProduct(int[] nums) {
    
    
        int maxF=nums[0],minF=nums[0],ans=nums[0];
        for(int i = 1; i<nums.length;i++){
    
    
                int mx= maxF,mn=minF;
                maxF=Math.max(mx*nums[i],Math.max(mn*nums[i],nums[i]));
                minF=Math.min(mn*nums[i],Math.min(mx*nums[i],nums[i]));
                ans=Math.max(ans,maxF);
        }
        return ans;
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gps666666/article/details/120225161