# 2589. Minimum Time to Complete All Tasks ###### tags: `Leetcode` `Hard` `Greedy` Link: https://leetcode.com/problems/minimum-time-to-complete-all-tasks/description/ ## 思路 思路参考[这里](https://leetcode.com/problems/minimum-time-to-complete-all-tasks/solutions/3286244/number-line/) 对于结束时间比较早的task 我们希望他执行的时间越晚越好 这样才能增加重复利用的可能性 所以我们应该按照结束的时间排序 先安排好结束时间比较早的task 对于后面的task 首先看它按照之前排的timeline 还需要多少时间执行task 相当于我们需要在```[start:end+1]```中加那么多True 使得这个task可以被完成 加的方法同理上面 我们希望他越晚越好 ## Code ```python= class Solution: def findMinimumTime(self, tasks: List[List[int]]) -> int: line = [False]*2001 tasks.sort(key=lambda x:x[1]) for start, end, duration in tasks: duration -= sum(line[start:end+1]) temp = end while duration > 0: if not line[temp]: duration -= 1 line[temp] = True temp -= 1 return sum(line) ```