给定一个数组,找出最大连续的子数组的最大乘积,并返回最大乘积
思路:给定的数组中包含正数,负数。遍历给定的数组,若当前的数是负数,则将最大的数和最小的数交换一下。
具体代码如下
class Solution {
public int maxProduct(int[] nums) {
int min = nums[0],max = nums[0],res = nums[0];
for(int i=1;i<nums.length;i++){
if(nums[i] < 0){
int temp = min;
min = max;
max = temp;
}
min = Math.min(nums[i],min*nums[i]);
max = Math.max(nums[i],max*nums[i]);
res = Math.max(res,max);
}
return res;
}
}