赞
踩
题目描述:
在某个项目中有多个任务(用 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 = 0
- end_time = -1
- for task in tasks:
- if task[0] >= end_time:
- count += 1
- end_time = task[1]
- return count
-
-
- n = 3
- tasks = [
- [1, 1],
- [1, 2],
- [1, 3]
- ]
-
-
- print(max_tasks(n, tasks))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。