华为OD机试真题 JavaScript 实现【最多获得的短信条数】【2023Q1 100分】,附详细解题思路

news/2024/10/29 2:27:55/

在这里插入图片描述

一、题目描述

某云短信厂商,为庆祝国庆,推出充值优惠活动。现在给出客户预算,和优惠售价序列,求最多可获得的短信总条数。

二、输入描述

  1. 第一行客户预算M,其中 0 ≤ M ≤ 10^6
  2. 第二行给出售价表, P1, P2, … Pn , 其中 1 ≤ n ≤ 100 ,

Pi为充值 i 元获得的短信条数。

1 ≤ Pi ≤ 1000 , 1 ≤ n ≤ 100

三、输出描述

最多获得的短信条数。

四、解题思路

  1. 读取输入的客户预算 budget 和优惠售价序列 list;
  2. 创建一个长度为 budget + 1 的数组 dp,用于存储在不同预算下可获得的最多短信条数;
  3. 使用动态规划计算最多获得的短信条数:
    • 遍历优惠售价序列 list,对于每个售价 i,遍历从0到预算的所有金额 j。
    • 如果当前金额 j 大于等于当前售价 i,更新 dp[j] 为 dp[j] 和 dp[j - i - 1] + list[i] 的较大值,其中 dp[j - i - 1] 表示在剩余预算为j - i - 1 的情况下获得的短信条数,list[i] 表示当前售价 i 对应的短信条数。
  4. 输出 dp[budget],即在给定预算下可获得的最多短信条数。

五、JavaScript 算法源码

// 读取输入的客户预算 budget 和优惠售价序列 list
function calculateMaxSMS(budget, list) {// 使用动态规划计算最多获得的短信条数const dp = new Array(budget + 1).fill(0);// 遍历优惠售价序列 list,对于每个售价 i,遍历从0到预算的所有金额 j。for (let i = 0; i < list.length; i++) {for (let j = 1; j <= budget; j++) {if (j >= i + 1) {dp[j] = Math.max(dp[j], dp[j - i - 1] + list[i]);}}}return dp[budget];
}

六、效果展示

1、输入

12

2、输出

[10,20,50,70,90,130,180]

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/503383.html

相关文章

如果有人问你数据库的原理,叫他看这篇文章

http://blog.jobbole.com/100349 一提到关系型数据库&#xff0c;我禁不住想&#xff1a;有些东西被忽视了。关系型数据库无处不在&#xff0c;而且种类繁多&#xff0c;从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。你可以自己谷歌/百度一下…

【深圳南山】正儿八经的聊聊年后是否要换工作。

最近看的一家很不错的公司&#xff0c;香港aftership公司 爱客科技&#xff08;深圳&#xff09;有限公司 值得推荐&#xff01; 国际团队、全球性项目、高并发请求、福利好&#xff0c;业务增长迅速&#xff0c;持续有需求&#xff0c;欢迎推荐和自荐&#xff08;推荐他人成…

win10怎么更新显卡驱动_Intel发布核显新驱动:支持Win10 H2更新、11代酷睿狂喜-Intel,核显,驱动,Win10 ——快科技(驱动之家旗下媒体)-...

10月份又要到微软升级Windows 10系统了&#xff0c;Intel今天也发布了最新的核显驱动&#xff0c;支持Win10 H2更新&#xff0c;同时给11代酷睿的锐炬核显增加了多款游戏支持&#xff0c;包括最新的魔兽世界资料片。 以下是详细的更新说明&#xff1a; Intel英特尔显卡驱动版Fo…

C++ Primer Plus笔记: 2023.06.21

1.关于代码风格&#xff0c;符号常量应该放在main( )的外面 2.声明数组的通用格式: typeName arrayName[arraySize] ;注意&#xff0c;arraySize不能是变量&#xff0c;可以是整型常数或const值&#xff0c;也可以是常量表达式。 2.编译器不会检查使用的下标是否有效。 3.如…

Game 2048

1 //事件处理对象2 //addHandler() 方法接受3个参数&#xff1a;要操作的元素、事件名称和事件处理程序函数。3 var EventUtil {4 addHandler: function (element, type, handler) {5 if (element.addEventListener) {6 element.addEventListener(typ…

香港AfterShip 爱客科技(深圳)有限公司

有关 AfterShip AfterShip 公司成立于 2012 年 4 月,总部设于香港,团队约 60 人,设有印度分公司,团队约 10 人。 2014 年开始每年业务实现 100%复合增长,并同时录得纯利,是少有健康可以持续成 长的公司。 AfterShip 是一家专注做 B 端 SaaS,业务遍布全球多个国家,致力帮助各大小…

python人工智能工程师-[科技园] Python 工程师人工智能研发工程师

3 2018-11-13 09:00:44 08:00 深圳日均承担过亿 API 请求的公司招聘了 深圳南山科技园中国地质大学产学研基地 2 楼。 招聘以下岗位&#xff08;具体岗位可以在 boss 或者拉钩上搜“ aftership ”即可&#xff09;&#xff1a; 内推联系方式&#xff1a;王先生 1501368417…

从零开始写一个Jison解析器(3/10):良好的开端是成功的一半——《政治学》 (亚里士多德)

从零开始写一个Jison解析器(3/10)&#xff1a;良好的开端是成功的一半——《政治学》 (亚里士多德) 从零开始写一个Jison解析器(1/10)&#xff1a;Jison&#xff0c;不是Json 从零开始写一个Jison解析器(2/10)&#xff1a;学习解析器生成器parser generator的正确姿势 从零开…