LeetCode:152. Maximum Product Subarray Java 子数组最大乘积

来源:互联网 发布:重庆大学网络网上报修 编辑:程序博客网 时间:2024/06/07 13:29

152. Maximum Product Subarray

Find the contiguous subarray within an array (containing at least one number) which has the largest product.

For example, given the array [2,3,-2,4],
the contiguous subarray [2,3] has the largest product = 6.


子数组最大乘积(同类型题,改成double即可)


给定一个int类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。

例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以返回12。


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


类似问题:maximum subarray



0 0