leetcode 628. 三个数的最大乘积
628. 三个数的最大乘积
给你一个整型数组 nums
,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
解法:
分析一下情况:
如果都是负数,最大乘积是 最大的三个数的乘积
如果都是正数,最大乘积也是最大的三个数的乘积
如果负数和正数都有,可能最大的三个个数的乘积,也可能是最小的俩个负数和最大的正数乘积。
所以排序后,使用 0 ,1 ,n-1 位置上的数乘积和 n-1,n-2,n-3位置的乘积比较
public int maximumProduct(int[] nums) {
int n=nums.length;
Arrays.sort(nums);
return Math.max(nums[0]*nums[1]*nums[n-1],nums[n-1]*nums[n-2]*nums[n-3]);
}