当前位置:   article > 正文

华为OD机试C卷-- 可以处理的最大任务数(Java & JS & Python & C)

华为OD机试C卷-- 可以处理的最大任务数(Java & JS & Python & C)

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。

题目描述
在某个项目中有多个任务(用task数组表示)需要你进行处理,其中:

  • task[i] = [si, ei]

你可以在 si ≤ day ≤ ei 中的任意一天处理该任务,请返回你可以处理的最大任务数。

输入描述
第一行为任务数量 n

  • 1 ≤ n ≤ 100000

后面 n 行表示各个任务的开始时间和终止时间,使用 si,ei 表示

  • 1 ≤ si ≤ ei ≤ 100000

输出描述
输出为一个整数,表示可以处理的最大任务数。

题目解析
这个问题是一个典型的贪心算法问题,类似于“活动选择”问题。在这个问题中,你有一系列的活动(任务),每个活动都有一个开始时间和一个结束时间。目标是选择最多的活动(任务),使得这些活动在时间上不会重叠。

一种常见的解决方法是首先将所有活动按照结束时间进行排序,然后遍历排序后的活动列表,每次选择结束时间最早的活动,因为这样可以为之后的活动留下更多的选择空间。

Java算法源码

import 
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/702138
    推荐阅读
    相关标签
      

    闽ICP备14008679号