Maximum Product of Three Numbers

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

Comments

Popular posts from this blog

Encrypt and Decrypt Strings

Degree of an Array

Minimum Sum of Four Digit Number After Splitting Digits