152. [M] Maximum Product Subarray

https://leetcode.com/problems/maximum-product-subarray/

暴力算法

使用一个数组r保存中间结果,长度len从1到n,r[i] 从位置i开始的长度为len的子数组的乘积。

class Solution {
    public int maxProduct(int[] nums) {
        int[] r = new int[nums.length];
        int ans = nums[0];
        
        for (int i = 0; i < r.length; i++) r[i] = 1;
        
        for (int len = 0; len < nums.length; len++) {
            for (int i = 0; i < nums.length - len; i++) {
                r[i] *= nums[i+len];
                if (r[i] > ans) {
                    ans = r[i];
                }
            }
        }
        return ans;
    }
}

最后更新于

这有帮助吗?