Back to writing

1464. Maximum Product Of Two Elements In An Array

1464. Maximum Product of Two Elements in an Array

Easy


Given the array of integers nums, you will choose two different indices i and j of that array. Return the maximum value of (nums[i]-1)*(nums[j]-1).

 

Example 1:

Input: nums = [3,4,5,2]
Output: 12 
Explanation: If you choose the indices i=1 and j=2 (indexed from 0), you will get the maximum value, that is, (nums[1]-1)*(nums[2]-1) = (4-1)*(5-1) = 3*4 = 12. 

Example 2:

Input: nums = [1,5,4,5]
Output: 16
Explanation: Choosing the indices i=1 and j=3 (indexed from 0), you will get the maximum value of (5-1)*(5-1) = 16.

Example 3:

Input: nums = [3,7]
Output: 12

 

Constraints:

  • 2 <= nums.length <= 500
  • 1 <= nums[i] <= 10^3

 class Solution:
    def maxProduct(self, nums: List[int]) -> int:

        nums = [-num for num in nums]

        heapq.heapify(nums)
        #print(nums)
        return(heapq.heappop(nums) +1) * (heapq.heappop(nums)+1)
        #return (nums[0]+1)*(nums[1]+1)

#         n1 = nums[0]
#         n2 = nums[1]

#         for num in nums[2:]:
#             if num > n1:
#                 if n1>n2:
#                     n2=n1
#                 n1 = num

#             elif num > n2:
#                 n2 = num
#                 if n2>n1:
#                     n1=n2

#         #print(n1, n2)

#         return (n1-1)*(n2-1)

time.perf_counter() always returns the float value of time in seconds. while pref_counter_ns() always gives the integer value of time in nanoseconds.


t1_start = perf_counter()
t1_stop = perf_counter()
print("Elapsed time:", t1_stop, t1_start)
Python
Link →