华为OD机试D卷 --可以处理的最大任务数--24年OD统一考试(Java & JS & Python & C & C++)
在某个项目中有多个任务(用task数组表示)需要你进行处理,其中:task[i] = [si, ei]你可以在 si ≤ day ≤ ei 中的任意一天处理该任务,请返回你可以处理的最大任务数。
题目描述
在某个项目中有多个任务(用task数组表示)需要你进行处理,其中:
task[i] = [si, ei]
你可以在 si ≤ day ≤ ei 中的任意一天处理该任务,请返回你可以处理的最大任务数。
输入描述
第一行为任务数量 n
1 ≤ n ≤ 100000
后面 n 行表示各个任务的开始时间和终止时间,使用 si,ei 表示
1 ≤ si ≤ ei ≤ 100000
输出描述
输出为一个整数,表示可以处理的最大任务数。
用例1
输入
输出
题目解析
这个问题是一个典型的贪心算法问题,类似于“活动选择”问题。在这个问题中,你有一系列的活动(任务),每个活动都有一个开始时间和一个结束时间。目标是选择最多的活动(任务),使得这些活动在时间上不会重叠。
一种常见的解决方法是首先将所有活动按照结束时间进行排序,然后遍历排序后的活动列表,每次选择结束时间最早的活动,因为这样可以为之后的活动留下更多的选择空间。
java源码
相关文章:
-
-
-
Java中解压缩文件的方法
文件解压缩,它提供了读取 ZIP 文件内容的功能,允许你以编程方式从 ZIP 文件中提取文件和目录结构,以及读取其中的数据。我这里解压缩的时候获取了某个固定文件...
[阅读全文]
-
-
【java数据结构之八大排序(上)-直接插入排序,希尔排序,选择排序,堆排序,向下调整(大根堆,小根堆)等知识详解】…
-
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论