题目浅析

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

  • 简单地说,就是给一个数组,需要操作将数组中最小的两个值提出来,经运算放回去一个更大的值,求多少次操作后,整个数组的值均大于等于数字 k。

思路分享

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

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def minOperations(self, nums: List[int], k: int) -> int:
ans = 0
heapify(nums)
while len(nums) > 1:
min_num = heappop(nums)
if min_num >= k:
break
min_other = heappop(nums)
heappush(nums, min_num*2+min_other)
ans += 1
return ans