leetcode 力扣 152 乘积最大子数组

79 阅读1分钟

动态规划

算法思路
背就完事了

res不能设置为1 lc152_1.png

res不能设置为0 lc152_2.png

public int maxProduct(int[] nums) {
        int min = 1;
        int max = 1;
        int res = Integer.MIN_VALUE;

        for (int i = 0; i < nums.length; i++) {
            if (nums[i] < 0) {
                int temp = max;
                max = min;
                min = temp;
            }

            max = Math.max(nums[i] * max, nums[i]);
            min = Math.min(nums[i] * min, nums[i]);
            res = Math.max(res, max);
        }

        return res;
    }
}

lc152_3.png

lc152_4.png