628.三个数的最大乘积(简单)
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入: [1,2,3]
输出: 6
示例 2:
输入: [1,2,3,4]
输出: 24
**思路:**这道题很重要的一个分类讨论就是,当数组中存在负数的时候。
1.都是负数,那还是最大的三个数乘积
2.两个负数一个正数,最小的两个负数和最大的正数乘积
3.只有两个正数,那会剔除一个正数,变成情况2
4.三个正数,即最大三个正数乘积了
代码如下:
import java.lang.reflect.Array;
import java.util.Arrays;
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int maximumProduct(int[] nums) {
if(nums==null||nums.length<=0){
return 0;
}
Arrays.sort(nums);
return Math.max(nums[0]*nums[1]* nums[nums.length-1],nums[nums.length-1]*nums[nums.length-2]*nums[nums.length-3]);
}
}