算法通关村第十九关-黄金挑战动态规划

2023-12-21 17:35:12

?乘积最大子数组

描述 :

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

测试用例的答案是一个?32-位?整数。

子数组?是数组的连续子序列。

题目 :

LeetCode 152.乘积最大子数组 :

152. 乘积最大子数组

分析 :

这里给个视频 :?LeetCode力扣 152. 乘积最大子数组 Maximum Product Subarray_哔哩哔哩_bilibili

解析 :

class Solution {
    public int maxProduct(int[] nums) {
        if(nums.length == 0 || nums == null){
            return 0;
        }
        int max = nums[0];
        int min = nums[0];
        int res = nums[0];
        for(int i = 1;i < nums.length;i++){
            int temp = max;
            max =  Math.max(Math.max(max * nums[i],min * nums[i]), nums[i]);
            min =  Math.min(Math.min(min * nums[i],nums[i] * temp),nums[i]);
            res = Math.max(res,max);
        }
        return res;
    }
}

这期就到这里 , 下期见!

文章来源:https://blog.csdn.net/sytdsqzr/article/details/135133089
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。