leetcode 题解 628.三个数的最大乘积(Typescript)
题目描述:
给定一个整数数组 nums
,找出三个不同索引 i
、j
和 k
,使得 nums[i]
, nums[j]
和 nums[k]
的 乘积 最大,并返回这个最大的乘积。
示例 1:
输入: nums = [1,2,3]
输出: 6
示例 2:
输入: nums = [1,2,3,4]
输出: 24
提示:
3 <= nums.length <= 104
-1000 <= nums[i] <= 1000
题解:
function maximumProduct(nums: number[]): number {
nums.sort((a, b) => a - b);
return Math.max(nums[0] * nums[1] * nums[nums.length - 1], nums[nums.length - 3] * nums[nums.length - 2] * nums[nums.length - 1]);
}
这段代码首先对数组进行排序,然后返回两种可能的最大乘积:
- 最大的三个数相乘
- 最小的两个数和第三大的数相乘
这样就可以得到数组中三个数的最大乘积。
评论已关闭