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

本文介绍了如何使用贪心算法解决华为OD机试中的一道题目,即在有限时间内处理任务以获得最多积分。通过优先处理积分高、截止时间早的任务,利用Java、Python和JavaScript实现最大堆来优化任务处理顺序,从而最大化积分收益。
摘要由CSDN通过智能技术生成

获取题库不需要订阅专栏,可直接私信我进入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

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

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值