一、题目描述
某云短信厂商,为庆祝国庆,推出充值优惠活动。
现在给出客户预算,和优惠售价序列,求最多可获得的短信总条数。
二、输入描述
第一行客户预算M,其中 0<=M<=1000000。
第二行给出售价表,P1,P2…Pn, 其中 1<=n<=100,Pi为充值i元获得的短信条数。 1<=Pi<=1000, 1<=n<=100。
三、输出描述
最多获得的短信条数。
四、解题思路
- 如果客户预算小于0 或者 已计算的元素下角标大于客户预算,返回当前短信条数;
- 从已计算的元素下角标开始遍历出售价表;① 计算充值金额为i+1元时获得的短信条数,递归调用(客户预算、出售价表、短信条数msgCount + arr[i]、已计算的元素下角标);② 计算未选择当前售价时获得的短信条数p2,递归调用,③ 更新max,为max、p1、p2中的最大值;
- 返回最多获得的短信条数;
五、Java算法源码
public static void
本博客详细介绍了华为OD机试中的一道动态规划题目,涉及云短信平台的充值优惠活动。通过动态规划解决背包问题,最大化在给定预算下获得的短信条数。博客提供了解题思路、Java算法源码和优化方法,并展示了输入输出示例。
订阅专栏 解锁全文
1539

被折叠的 条评论
为什么被折叠?



