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
SOLUTION:
class Solution:
def maximumProduct(self, nums: List[int]) -> int:
nums.sort()
return max(nums[0] * nums[1] * nums[2], nums[-1] * nums[-2] * nums[-3], nums[0] * nums[1] * nums[-1])
# import heapq
# class Solution:
# def maximumProduct(self, nums: List[int]) -> int:
# nums = [(-abs(n), 1 if n >= 0 else -1) for n in nums]
# heapq.heapify(nums)
# s = 1
# p = 1
# for i in range(3):
# curr, sign = heapq.heappop(nums)
# curr *= -1
# while curr == 0:
# if len(nums) > 0:
# curr, sign = heapq.heappop(nums)
# else:
# return 0
# p *= curr
# s *= sign
# return p * sign
Top comments (0)