题目浅析

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

  • 简单地说,就是给一个数字代表山的高度,和一个数组代表工人挖一单位山的工作时间,工人每挖一次,下次会耗时更久,求工人们挖空山的最短时间。

思路分享

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

  • 参考题解
1
2
3
4
5
6
7
8
9
class Solution:
def minNumberOfSeconds(self, mountainHeight: int, workerTimes: List[int]) -> int:
worker = [(t, t, t) for t in workerTimes]
heapq.heapify(worker)
nxt = 0
for _ in range(mountainHeight):
nxt, delta, base = worker[0]
heapq.heapreplace(worker, (nxt+delta+base, delta+base, base))
return nxt