题目:
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-product-of-three-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
示例1:
输入:nums = [1,2,3]
输出:6
示例2:
输入:nums = [1,2,3]
输出:6
示例3:
输入:nums = [-1,-2,-3]
输出:-6
提示:
3 <= nums.length <= 104
-1000 <= nums[i] <= 1000
解法:
先给数组排序,最大值只有两种情况:
1. 最大的三个数的乘积;
2. 最小的两个数(负数)和最大的数的乘积
/**
*/
var maximumProduct = function(nums) {
const len = nums.length;
nums.sort((a, b) => a - b);
return Math.max(nums[0] * nums[1] * nums[len-1], nums[len-1] * nums[len-2] * nums[len-3]);
};