Maximum Product of Three Numbers
Description
Given an integer array, find three numbers whose product is maximum and output the maximum product.
Example 1:
Input: [1,2,3] Output: 6
Example 2:
Input: [1,2,3,4] Output: 24
Note:
- The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
- Multiplication of any three numbers in the input won't exceed the range of 32-bit signed integer.
Solution(javascript)
/**
* @param {number[]} nums
* @return {number}
*/
const maximumProduct = function (nums) {
let min1 = Infinity
let min2 = Infinity
let max1 = -Infinity
let max2 = -Infinity
let max3 = -Infinity
nums.forEach((num) => {
if (num < min1) {
min2 = min1
min1 = num
} else if (num < min2) {
min2 = num
}
if (num > max1) {
max3 = max2
max2 = max1
max1 = num
} else if (num > max2) {
max3 = max2
max2 = num
} else if (num > max3) {
max3 = num
}
})
return Math.max(min1 * min2 * max1, max1 * max2 * max3)
}