
/**
注意,乘上一个负数会让小的变大,大的变小,保存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;
}
}

被折叠的 条评论
为什么被折叠?



