每日一题 2530. 执行 K 次操作后的最大分数(中等,最大根堆)

每日一题 2530. 执行 K 次操作后的最大分数(中等,最大根堆)_第1张图片
显然每次需要取出最大的元素,用过后将他除以三重新加入数组中,所以只要维护一个最大根堆即可

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

你可能感兴趣的:(用Python刷力扣,算法,leetcode,python)