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]);
}
原文地址:https://www.cnblogs.com/Lsummer-/p/14903622.html