最低票价

题目:
在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。
火车票有三种不同的销售方式:
一张为期一天的通行证售价为 costs[0] 美元;
一张为期七天的通行证售价为 costs[1] 美元;
一张为期三十天的通行证售价为 costs[2] 美元。
通行证允许数天无限制的旅行。 例如,如果我们在第 2 天获得一张为期 7 天的通行证,那么我们可以连着旅行 7 天:第 2 天、第 3 天、第 4 天、第 5 天、第 6 天、第 7 天和第 8 天。

返回你想要完成在给定的列表 days 中列出的每一天的旅行所需要的最低消费。
题目解析:
这道题用动态规划是最合适的,解题思路是昨天的费用加上只旅游一天的费用的和 与 7天前的费用加上旅行7天的费用的和 与 30天前的加上旅行30天所需费用的和三者最小的就是今天的最低费用,如果旅行天数不满足7天或者是30天,也应该进行比较计算,因为题目并没有说7这两个套餐不一定比天数不满这些天所计算的费用高。

int mincostTickets(vector<int>& days, vector<int>& costs) {int end_day = days[days.size() - 1];vector<vector<int>> buff(2, vector<int>(end_day + 1));for (int i = 0; i < days.size(); i++)buff[0][days[i]] = 1;for (int i = 1; i <= end_day; i++){if (!buff[0][i]){buff[1][i] = buff[1][i - 1];continue;}if (i < 7)buff[1][i] = min(buff[1][i - 1] + costs[0], min(costs[1], costs[2]));else if (i < 30)buff[1][i] = min(buff[1][i - 1] + costs[0], min(buff[1][i - 7] + costs[1], costs[2]));elsebuff[1][i] = min(min(buff[1][i - 1] + costs[0], buff[1][i - 7] + costs[1]), buff[1][i - 30] + costs[2]);}return buff[1][end_day];
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础理论研究是人工智能持续发展的保证

来源&#xff1a;图灵人工智能摘要&#xff1a; 人工智能的主流技术的发展大致经历了三个重要的历程。人工智能的主流技术的发展大致经历了三个重要的历程。1956-1965年&#xff0c;人工智能的形成期&#xff0c;强调推理的作用。一般认为只要机器被赋予逻辑推理能力就可以实现…

鼠标关机后仍然发光的实用解决方法

现在朋友们用的鼠标大多数都是光电鼠了&#xff0c;但是大家注意到这样一个现象没有呢&#xff1f;就是在正常关机以后鼠标仍然在继续发光而不会灭&#xff0c;为什么呢&#xff1f;&#xff1f;如何才能解决这样的问题呢&#xff1f;&#xff1f;下面就介绍一下“让鼠标在关机…

kettle创建mysql资源库

步骤: 1. 创建一个库&#xff1a; create database xxx; 2. 创建kettle用户&#xff0c;密码也为kettle 3. 给kettle用户使用xxx 库的权限。 4. 刷新权限&#xff0c;使权限生效。 代码&#xff1a; create database xxx; DROP USER kettle10.150.xx.xx ; CREATE USER ket…

代换链表入口节点

题目&#xff1a; 给定一个链表&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0 开始&#xff09;。 如果 pos 是 -1&#xff0c;…

新AI技术破解“人脑密码”的艰辛历程

来源&#xff1a;人工智能大健康摘要&#xff1a; 就智能感知而言&#xff0c;如何获取人类脑部思维同样是业内长期探索的问题。就智能感知而言&#xff0c;如何获取人类脑部思维同样是业内长期探索的问题。可以预见的是&#xff0c;单纯通过思维指令来控制人工智能的行为&…

JavaScript事件捕获与事件冒泡原理 IE和DOM之间存在哪些主要差别

事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。 &#xff08;1&#xff09;冒泡型事件&#xff1a;事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。 IE 5.5: div -> body -> document IE 6.0: div -> body -> html -&…

mysql为什么选错索引?怎么解决?

mysql为什么选错索引&#xff1f; 在进行慢SQL分析的时候&#xff0c;有时候我们会发现explain的扫描行数和慢日志中的行数相差很大&#xff0c;那explain中的rows这个扫描行数是怎么判断的&#xff1f; 其实MySQL在真正开始执行语句之前&#xff0c;并不能精确的满足这个条件…

复制带随机节点的链表

题目&#xff1a; 给定一个链表&#xff0c;每个节点包含一个额外增加的随机指针&#xff0c;该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。 解题思路&#xff1a; 这道题的一个难点就是链表中的随机指针&#xff0c;我能想到的就是在这个链表的每个节…

北斗三号系统第九、十颗组网卫星三大看点

来源&#xff1a;新华网29日&#xff0c;北斗三号第九颗、第十颗卫星在西昌卫星发射中心腾空而起&#xff0c;此次发射的两颗卫星是北斗导航全球组网从最简系统迈向基本系统的首组卫星。北斗的建设&#xff0c;像一场马拉松比赛&#xff0c;既考验耐力又比拼速度。作为“北斗大…

写代码这条路,能走多远?

职场危机感似乎是每个人在职业生涯都会遇到的话题&#xff0c;我对这种危机处境和自己曾遇到的问题进行了一番思考&#xff0c; 参考了其他人的一些结论并结合自身的经历&#xff0c;设计了应对的初步方案。 通过这篇文章&#xff0c;希望能给大家一些启发&#xff0c;也欢迎大…

【笔记】用正则匹配字符串的方法摘抄

<script type"text/javascript"> <!-- var zhengze /as/g; alert(typeof zhengze) var zfc asjkkjkjasjkjlkjas; //正则的方法 aa zhengze.exec(zfc)//返回找到第一个as&#xff0c;一般会配合index使用 bb zhengze.test(zfc)//返回的是否找到as的bool…

AMD VS 英特尔:芯片制造实力似乎正在发生逆转!

来源&#xff1a;网易智能参与: 天门山据国外媒体MarketWatch报道&#xff0c;芯片制造业似乎正在发生重大变化&#xff0c;AMD好像成为和对手英特尔竞争的赢家。在这两家芯片制造商本周公布季度财报之后&#xff0c;分析师表示&#xff0c;英特尔陷入产品延迟和管理上的不确定…

把数组排列成最小的数(详解)

题目&#xff1a; 输入一个正整数数组&#xff0c;把数组里所有数字拼接起来排成一个数&#xff0c;打印能拼接出的所有数字中最小的一个。例如输入数组{3&#xff0c;32&#xff0c;321}&#xff0c;则打印出这三个数字能排成的最小数字为321323。 题目解析&#xff1a; 看到…

Linux tar命令详解

tar -c: 建立压缩档案 -x&#xff1a;解压 -t&#xff1a;查看内容 -r&#xff1a;向压缩归档文件末尾追加文件 -u&#xff1a;更新原压缩包中的文件 这五个是独立的命令&#xff0c;压缩解压都要用到其中一个&#xff0c;可以和别的命令连用但只能用其中一个。下面的参数是根…

人工智能预测AI系统的“心灵”与“行为”

来源&#xff1a;中国科学网任何同Siri或Alexa有过令人沮丧的互动体验的人都知道&#xff0c;数字助理无法同人类媲美。而它们需要的是被心理学家称为“心智理论”的东西—— 一种意识到其他人的信念和欲望的能力。如今&#xff0c;计算机科学家创建了能窥探其他计算机“心灵”…

Linux grep命令详解

Linux grep命令用于查找文件里符合条件的字符串。 grep指令用于查找内容包含指定的范本样式的文件&#xff0c;如果发现某文件的内容符合所指定的范本样式&#xff0c;预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称&#xff0c;或是所给予的文件名为&q…

java基础1

1. 变量须先声明&#xff0c;再赋值&#xff0c;才使用。 &#xff08;1&#xff09;方法内的变量叫局部变量&#xff0c;方法外的变量叫成员变量 &#xff08;2&#xff09;基本数据类型&#xff1a;4类8种。 其余的叫引用数据类型。 &#xff08;3&#xff09;变量作用域&…

Firebug控制台详解[转]

Firebug是网页开发的利器&#xff0c;能够极大地提升工作效率。 但是&#xff0c;它不太容易上手。我曾经翻译过一篇《Firebug入门指南》&#xff0c;介绍了一些基本用法。今天&#xff0c;继续介绍它的高级用法。 Firebug控制台详解 作者&#xff1a;阮一峰 控制台&#xff0…

跳石板(详解)

题目链接&#xff1a; https://www.nowcoder.com/practice/4284c8f466814870bae7799a07d49ec8?tpId85&&tqId29852&rp1&ru 题目分析&#xff1a; 这道题就是计算从N开始加&#xff0c;最少加几次等于M&#xff0c;前提条件是每次相加的数必须是当前数的约数 思…

Python面试题大全(一):基础知识学习

目录 Python基础 文件操作 1.有一个jsonline格式的文件file.txt大小约为10K 2.补充缺失的代码 模块与包 3.输入日期&#xff0c; 判断这一天是这一年的第几天&#xff1f; 4.打乱一个排好序的list对象alist&#xff1f; 数据类型 5.现有字典 d {a:24,g:52,i:12,k:33}请…