Given an integer array, find three numbers whose product is maximum and output the maximum product.
Example 1:
Input: [1,2,3] Output: 6
Example 2:
Input: [1,2,3,4] Output: 24
Note:
- The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
- Multiplication of any three numbers in the input won’t exceed the range of 32-bit signed integer.
public class Solution {
public int maximumProduct(int[] nums) {
int max = Integer.MIN_VALUE;
int max2 = Integer.MIN_VALUE;
int max3 = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
int min2 = Integer.MAX_VALUE;
for(int i=0;i<nums.length;i++){
if(nums[i]>max){
max3 = max2;
max2 = max;
max = nums[i];
}
else if(nums[i]>max2){
max3 = max2;
max2 = nums[i];
}
else if(nums[i]>max3){
max3 = nums[i];
}
if(nums[i]<min){
min2 = min;
min = nums[i];
}
else if(nums[i]<min2){
min2 = nums[i];
}
}
return Math.max(max * max2 * max3,max * min * min2);
}
}
微信扫一扫
支付宝扫一扫