ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

2026华为OD面试题071:可以处理的最大任务数

2026华为OD面试题071:可以处理的最大任务数 题目描述在某个项目中有多个任务(用 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 天处理,全部完成。讲个故事:排期工程师的烦恼项目经理甩过来一堆任务,每个任务有个时间窗口 [si, ei],只要在这个窗口里挑一天做掉就行。但每天只能做一个,问最多能做掉几个。窗口越靠后结束的越不急,先紧着早结束的安排,把每一天尽量塞满。可是一个个找空闲日子很慢,得用并查集快速跳到下一个可用的日子。说白了就是贪心挑结束早的任务,配并查集找空位。核心原理:按结束日排序加并查集找空位贪心策略:任务按结束日升序排(结束早的先安排,给后面腾空间)。对每个任务 [s, e],从 s 起找第一个还没被占用的日子 day,如果 day = e,就在这天做掉,并
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表