跳到主要内容

1962.移除石子使总数最小

链接:1962.移除石子使总数最小
难度:Medium
标签:贪心、数组、堆(优先队列)
简介:返回执行 k 次操作后,剩下石子的 最小 总数。

题解 1 - python

  • 编辑时间:2023-12-23
  • 执行用时:708ms
  • 内存消耗:28.59MB
  • 编程语言:python
  • 解法介绍:heap。
class Solution:
def minStoneSum(self, piles: List[int], k: int) -> int:
q = list(-v for v in piles)
heapify(q)
res = sum(piles)
for _ in range(k):
v = -heappop(q)
res -= floor(v / 2)
heappush(q, -(v - floor(v / 2)))
return res