题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个数组和一个整数 k,现在从数组中取一个数算分数,然后将这个数除三并向上取整放回去,求执行 k 次后能获取的最大分数。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
def maxKelements(self, nums: List[int], k: int) -> int:
ans = 0
for i in range(len(nums)):
nums[i] = -nums[i]
heapify(nums)
while k:
ans -= heapreplace(nums, nums[0]//3)
k -= 1
# while k:
# point = nums[0]
# ans -= point
# point = floor(point/3)
# heapreplace(nums, point)
# k-=1
# print(list(nums))
return ans