三个数的最大乘积

给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

  • 输入:nums = [1,2,3]

  • 输出:6

  • 输入:nums = [1,2,3,4]

  • 输出:24

  • 输入:nums = [-1,-2,-3]

  • 输出:-6

1
2
3
4
5
6
7
8
9
10
11
12
13
var maximumProduct = function(nums) {
// 题目分析 找出三个数组成的最大乘积
// 排序+多种条件判断 找出最大三个即可
if (nums && Array.isArray(nums) && nums.length >= 3) {
nums.sort((a, b) => a - b)
// 最大值是0
// 最大值 <0
// 最大值 > 0[包括有负数、无负数情况
// 实际上我们只需要关注索引为 0 , 1, ..., n-3, n-2, n-1。这5个数
const len = nums.length
return Math.max(nums[len-1] * nums[len-2] * nums[len-3], nums[len-1] * nums[0] * nums[1])
}
};