Array:求子数组最大乘积

2016-06-23  本文已影响12人  敲一手烂代码

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

public int maxProduct(int[] nums) {
        if (nums == null || nums.length ==0) {
            return -1;
        }
        int max = nums[0],min = nums[0],result = 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(temp*nums[i], min*nums[i]), nums[i]);
            result = Math.max(max, result);
        }
        return result;
    }
上一篇下一篇

猜你喜欢

热点阅读