Easy
Given an integer array nums
, find three numbers whose product is maximum and return the maximum product.
Example 1:
Input: nums = [1,2,3]
Output: 6
Example 2:
Input: nums = [1,2,3,4]
Output: 24
Example 3:
Input: nums = [-1,-2,-3]
Output: -6
Constraints:
3 <= nums.length <= 104
-1000 <= nums[i] <= 1000
class Solution {
fun maximumProduct(nums: IntArray): Int {
var min1 = Int.MAX_VALUE
var min2 = Int.MAX_VALUE
var max1 = Int.MIN_VALUE
var max2 = Int.MIN_VALUE
var max3 = Int.MIN_VALUE
for (i in nums) {
if (i > max1) {
max3 = max2
max2 = max1
max1 = i
} else if (i > max2) {
max3 = max2
max2 = i
} else if (i > max3) {
max3 = i
}
if (i < min1) {
min2 = min1
min1 = i
} else if (i < min2) {
min2 = i
}
}
return Math.max(min1 * min2 * max1, max1 * max2 * max3)
}
}