动态规划
code
public int maxProduct(int[] nums) {
int max = Integer.MIN_VALUE,imax=1,imin=1;
//遍历
for(int i:nums){
//如果当前元素是负数 则交换最大值和最小值
if(i<0){
int tmp = imax;
imax = imin;
imin = tmp;
}
//更新当前最大值 和最小值
imax = Math.max(imax*i,i);
imin = Math.min(imin*i,i);
max = Math.max(max,imax);
}
return max;
}