动态规划----8.乘积最大子数组
/**
注意,乘上一个负数会让小的变大,大的变小,保存max的同时min也需要保存
maxProduct、minProduct 当前最大、最小乘积 res记录结果
*/
class Solution {/**注意,乘上一个负数会让小的变大,大的变小,保存max的同时min也需要保存maxProduct、minProduct 当前最大、最小乘积 res记录结果*/public int maxProduct(int[] nums) {int maxProduct = nums[0], minProduct = nums[0];int res = nums[0];for(int i = 1; i < nums.length; i++) {if(nums[i] < 0) {int temp = maxProduct;maxProduct = minProduct;minProduct = temp;}maxProduct = Math.max(nums[i], maxProduct * nums[i]);minProduct = Math.min(nums[i], minProduct * nums[i]);res = Math.max(res,maxProduct);}return res;}
}