算出新的array来,为了避免排序,用heappush的方式把新的值在计算的时候就放入new array中,最后弹出前两个来,就是最大和第二大的新的数字。
class Solution:
def maxProduct(self, nums: List[int]) -> int:
newnums = []
for i,num in enumerate(nums):
newnum = num - 1
heapq.heappush(newnums, -newnum)
#print(newnums)
a = heapq.heappop(newnums)
b = heapq.heappop(newnums)
return a * b