152. 乘积最大子数组
class Solution {
public int maxProduct(int[] nums) {
//最大值和最小值都需保留因为负数*负数有可能就成为了最大值。
int max1=1;
int min1=1;
int max=nums[0];
for(int i=0;i<nums.length;i++){
if(nums[i]<0){
int temp=max1;
max1=min1;
min1=temp;
}
// max1=Math.max(max1*nums[i],max1);
// min1=Math.min(min1*nums[i],min1);
//并没有处理好子数组连续的问题
max1=Math.max(max1*nums[i],nums[i]);
min1=Math.min(min1*nums[i],nums[i]);
max=Math.max(max,max1);
}
return max;
}
}