题目:给你一个整型数组 nums,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入:nums = [1,2,3]
输出:6
提示:
3 <= nums.length <= 104
-1000 <= nums[i] <= 1000
👧 感想: 看题目就知道是一道很简单的题,但是要注意考虑全面,就是有可能同时存在正负数的情况
👧 解题思路: 首先将数组进行排序,我选择使用冒泡排序。然后比较最大三个数的乘积 与 最小两个数与最大三个数的乘积哪个大。只会存在这两种情况
function maximumProduct(nums: number[]): number {
popoSort(nums)
let length: number = nums.length
return Math.max(nums[0] * nums[1] * nums[length -1], nums[length - 3] * nums[length - 2] * nums[length -1])
};
function popoSort (nums: number[]) {
for (let i = 0; i < nums.length; i++) {
for (let j = 1; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
[nums[j], nums[j + 1]] = [nums[j + 1], nums[j]]
}
}
}
}