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

    示例 1:

    输入:nums = [1,2,3]
    输出:6
    示例 2:

    输入:nums = [1,2,3,4]
    输出:24
    示例 3:

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

    1. /**
    2. * @param {number[]} nums
    3. * @return {number}
    4. */
    5. var maximumProduct = function (nums) {
    6. nums.sort((a, b) => a - b);
    7. // 全正,全负都是最后3, 有正有负就是前3
    8. const n = nums.length;
    9. const res = Math.max(nums[0] * nums[1] * nums[n - 1], nums[n - 1] * nums[n - 2] * nums[n - 3])
    10. return res
    11. };

    时间复杂度o(nlogN) 空间复杂度o(logN)
    image.png