一. 题目-任务处理
在某个项目中有多个任务(用 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。
二.解题思路
要解决这个问题,可以按照任务的结束时间对任务进行排序。然后,从第一个任务开始,选择可以处理的最早结束的任务,然后再选择下一个可处理的最早结束的任务,以此类推。这样,你可以保证在每一天都选择最早结束的任务,从而最大化完成任务的数量。
具体的步骤如下:
- 将任务数组按照结束时间从小到大进行排序。
- 初始化一个变量
maxTasks
用于记录可以处理的最大任务数,初始值为0。 - 遍历排序后的任务数组,对于每