显然每次需要取出最大的元素,用过后将他除以三重新加入数组中,所以只要维护一个最大根堆即可
class Solution:
def maxKelements(self, nums: List[int], k: int) -> int:
nums = [-i for i in nums]
heapq.heapify(nums)
ans = 0
for i in range(k):
ans += -heapq.heapreplace(nums, -ceil(-nums[0]/3))
return ans