其他分享
首页 > 其他分享> > Leetcode 152-乘积最大子数组

Leetcode 152-乘积最大子数组

作者:互联网

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

题解(动态规划)

题解转载自Leetcode

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

在这里插入图片描述

标签:152,乘积,nums,int,数组,ans,maxF,Leetcode,Math
来源: https://blog.csdn.net/Helene1996/article/details/122722297