华为OD机试D卷24年统考Java最大任务数限制

文章目录

  • 题目描述
  • 输入描述
  • 输出描述
  • 用例1
  • 题目解析
  • java源码
  • js源码
  • c++源码
  • 题目描述

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

    task[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

    题目解析

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

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

    java源码

    
    

    作者:飞码创造者

    物联沃分享整理
    物联沃-IOTWORD物联网 » 华为OD机试D卷24年统考Java最大任务数限制

    发表回复