白银市网站建设_网站建设公司_模板建站_seo优化
2025/12/27 10:16:16 网站建设 项目流程

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

示例 1:

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

示例 2:

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

示例 3:

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

解析:
这道题思路很简单,先给数组排序,接下来使用贪心算法来解题:

贪心思路
最大乘积来源于两种情况(考虑有负数存在):

1 最大的三个正数:
nums[x] * nums[y] * nums[z](x < y < z,都是最大的)。

2 最小的两个负数 + 最大的一个正数:
因为负数相乘得到正数,再乘以最大正数可能很大。

因此,只需要考虑:

排序后,末尾三个数(最大的三个数)的乘积。
排序后,最小的两个数(可能是负数)和最大的一个数的乘积。

取两种情况的最大值即可。

具体代码:

/** * @param {number[]} nums * @return {number} */varmaximumProduct=function(nums){nums.sort((a,b)=>a-b)constn=nums.lengthreturnMath.max(nums[n-1]*nums[n-2]*nums[n-3],nums[0]*nums[1]*nums[n-1])};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询