题目描述:
在某个项目中有多个任务(用 tasks 数组表示)需要您进行处理,其中 tasks[i] = [si, ei],你可以在 si <= day <= ei 中的任意一天处理该任务。请返回你可以处理的最大任务数。
注:一天可以完成一个任务的处理。
输入描述:
第一行为任务数量 n,1 <= n <= 100000。后面 n 行表示各个任务的开始时间和终止时间,用 si 和 ei 表示,1 <= si <= ei <= 100000。
输出描述:
输出为一个整数,表示可以处理的最大任务数。
示例1
输入:
3
1 1
1 2
1 3
输出:3
说明:第一天处理任务 1,第二天处理任务 2,第三天处理任务 3。
解题思路:考察对贪心、排序、队列理解和运用。
def max_tasks(n, tasks):tasks.sort(key=lambda x: x[1]) count = 0end_time = -1for task in tasks:if task[0] >= end_time: count += 1end_time = task[1] return countn = 3
tasks = [[1, 1],[1, 2],[1, 3]
]print(max_tasks(n, tasks))