DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

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
Enter fullscreen mode Exit fullscreen mode

Top comments (0)