首页 > Python资料 博客日记

华为OD机试C卷-- 执行任务赚积分(Java & JS & Python & C)

2024-06-05 16:00:05Python资料围观145

这篇文章介绍了华为OD机试C卷-- 执行任务赚积分(Java & JS & Python & C),分享给大家做个参考,收藏Python资料网收获更多编程知识

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。
每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。
可用于处理任务的时间有限,请问在有限的时间内,可获得的最多积分。

输入描述
第一行为一个数 N,表示有 N 个任务

  • 1 ≤ N ≤ 100
    第二行为一个数 T,表示可用于处理任务的时间
  • 1 ≤ T ≤ 100
    接下来 N 行,每行两个空格分隔的整数(SLA 和 V),SLA 表示任务的最晚处理时间,V 表示任务对应的积分。
  • 1 ≤ SLA ≤ 100
  • 0 ≤ V ≤ 100000

输出描述
可获得的最多积分

题目解析
本题是一个典型的贪心算法问题。为了获得最多的积分,我们应该优先处理积分值高且最晚处理时间早的任务。这是因为,如果我们在一个任务的最晚处理时间之前没有完成它,那么这个任务所带来的积分将丢失。为了最大化总积分,我们需要优先考虑积分多且时间限制紧迫的任务。

贪心策略:
1.根据任务的积分和最晚处理时间,我们可以定义一个优先级:积分越高、最晚处理时间越早的任务优先级越高。
2.我们可以使用一个最大堆(在Java中通常是PriorityQueue,Pyt


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐