public class Solution {
public int maxProduct(int[] nums) {
if(nums.length == 1)
return nums[0];
int min = nums[0], max = nums[0], global = nums[0];
for(int i = 1; i < nums.length; i++) {
int a = min nums[i];
int b = max nums[i];
min = Math.min(nums[i], Math.min(a, b));
max = Math.max(nums[i], Math.max(a, b));
global = Math.max(global, max);
}
return global;
}
}
记录当前最大, 最小值. 因为遇到负数时, 与最小值的product可能成为最大值.
public class Solution { public int maxProduct(int[] nums) { if(nums.length == 1) return nums[0]; int min = nums[0], max = nums[0], global = nums[0]; for(int i = 1; i < nums.length; i++) { int a = min nums[i]; int b = max nums[i]; min = Math.min(nums[i], Math.min(a, b)); max = Math.max(nums[i], Math.max(a, b)); global = Math.max(global, max); } return global; } }