leetcode 983. Minimum Cost For Tickets(最少的买票钱)

南京邮电大学电工电子基础B实验六(组合逻辑电路) 南京邮电大学电工电子基础B实验五(组合逻辑电路);电工电子;南京邮电大学;计算机学院;实验报告;电路图; 阅读详情

在这里插入图片描述
有3种票:1天,7天,30天的,它们的票价在costs数组里。
days数组里面是你要出游的日期,一年里面的第几天。范围是1~365.
求能覆盖所有出游日期的最少票钱。

思路:

DP
必然要记录不同方案的票钱,选最小值,所以用到DP。

假如在day1买了3种不同的票,那么买票钱是
cost[0] + dp[day+1]
cost[1] + dp[day+7]
cost[2] + dp[day+30]

可以看到,这个dp[i] 是由它后面的dp决定的,
而且并不是每天都出游,遇到休息天就看它后一天的,一直遇到出游天再计算。
如何记录休息天呢?可以直接和days里面的数字比较,也可以用一个boolean数组记录。
超出最后一天时,旅游结束,不需要再买票了,所以返回0.

    public int mincostTickets(int[] days, int[] costs) {
        int n = days.length;
        boolean[] valid = new boolean[days[n-1]+1];
        Integer[] dp = new Integer[valid.length];

        for(int day : days) valid[day] = true;

        return dfs(days[0], costs, valid, dp);
    }

    int dfs(int day, int[] costs, boolean[] valid, Integer[] dp) {
        if(day >= valid.length) return 0;
        if(dp[day] != null) return dp[day];

        if(valid[day]) {
            int c1 = costs[0] + dfs(day+1, costs, valid, dp);
            int c2 = costs[1] + dfs(day+7, costs, valid, dp);
            int c3 = costs[2] + dfs(day+30, costs, valid, dp);
            return dp[day] = Math.min(c1, Math.min(c2, c3));
        } else {
            return dp[day] = dfs(day+1, costs, valid, dp);
        }
        
        
    }
北邮LaTeX论文模板避坑指南:从TEX Live安装到完美编译(2024最新版) 本文详细介绍了2024年最新版北邮LaTeX论文模板的使用指南,涵盖TEX Live安装、中文配置、模板优化及常见问题解决方案。针对Windows系统用户,提供TeX Live与CTeX的对比分析,并给出高效排版和终稿检查的实用技巧,帮助研究生快速掌握LaTeX论文写作。 阅读详情

相关推荐

告别第三方应用!用Android原生API搭建Miracast投屏接收器

本文深入探讨如何利用Android原生API开发Miracast接收器,绕过第三方依赖,实现高效的屏幕共享。通过Wi-Fi P2P直连、反射调用隐藏API和RTSP会话协商等核心技术,为开发者提供了一套完整的Miracast接收端解决方案,适用于多屏协同场景。

weixin_29174141的博客 382

leetcode 983. 最低票价

思路,定义 dp[i] 为到第 i 天的最小 cost,则有,如果 i 不在 days 里面 dp[i] = dp[i-1], 如果 i 在 days 里面 dp[i] = min(dp[i-1]+costs[0], dp[i-7]+costs[1], dp[i-30]+costs[30])输入:days = [1,2,3,4,5,6,7,8,9,10,30,31], costs = [2,7,15]在第 1 天,你花了 costs[0] = $2 买了一张为期 1 天的通行证,它将在第 1 天生效。

gq的博客 742

CCC数字钥匙3.0标准解读(22)

介绍设备制造商服务器和车辆制造商服务器之间的通信协议.

weixin_41738640的博客 1748

LeetCode第 983 题:最低票价(C++)

983. 最低票价 - 力扣(LeetCode) 状态转移表 动态规划,要求最小值,我们首先可以尝试使用状态转移表,使用一维数组就可以了: class Solution { public: int mincostTickets(vector<int>& days, vector<int>& costs) { int help[3] = {1,7,30};//和costs一一对应 int n = days.size();

zj 625

关于爱思唯尔官方Latex模版参考文献不是按照引用顺序编号,乱序问题

接下来使用工具打开cas-model2-names.bst文件,全词匹配搜索。其他期刊的模版也是一样的操作,把规定序号的规则的。爱思唯尔给的Latex模版大概文件结构如此。发现是按照第一作者的姓氏的大写字母排序。命令行给注释掉,小写的sort可别注释。

weixin_42748439的博客 5108

DeerFlow 系列教程 第十四篇 | IM 渠道集成——让 DeerFlow 接入飞书、企微、Slack、Telegram

DeerFlow 系列教程 第十四篇本篇教程继续,全面剖析 DeerFlow 的 IM 渠道集成方案。我们将深入理解 Channel 抽象层设计、MessageBus 消息总线机制、ChannelManager 调度循环、四大 IM 平台(飞书、企业微信、Slack、Telegram)的适配实现,以及从 IM 消息到 Agent 响应再到 IM 回复的完整消息流转过程。

weixin_43674738的博客 414

【LeetCode】动态规划—983. 最低票价(附完整Python/C++代码)

在旅行中,选择最优的票务购买方案是一个常见的问题。给定多个出行日期以及不同票种的费用,我们需要计算出为旅行者提供的最小票务费用。本篇文章将通过动态规划的方法,探讨如何有效解决这个问题。

Albert_Lsk的博客 946

安装keil软件时安装不了芯片包怎么回事?芯片包安装路径放在Keill里的packs下面,弹框提示报错:Errors retumned from cpackget...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2206

leetcode | go | 第983题 | 最低票价

【代码】leetcode | go | 第983题 | 最低票价。

iCling的博客 607

微信小程序——01开发前的准备和开发工具

微信小程序——01开发前的准备和开发工具

总裁余(余登武)博客 1万+

备考路上的学习笔记:我的软考高级架构师复盘与更新计划

本专栏基于作者备考软考高级系统架构设计师的真实经验,分为考前突击、基础夯实、核心突破、案例实战和论文通关五大模块。内容涵盖计算机体系结构、操作系统、数据库等核心知识,提供案例解析和论文范文。作者承诺持续更新考纲内容、真题复盘及互动答疑,旨在帮助考生系统备考,将个人踩坑经验转化为实用指南,陪伴考生共同完成从知识碎片到体系构建的蜕变历程。

qq837993702的博客 2293

LeetCode 983. Minimum Cost For Tickets

【代码】LeetCode 983. Minimum Cost For Tickets。

weixin_42383726的博客 517

LibCity:开源的交通预测算法库 | 面向小白,从0到1【SUMO十字路口仿真建模】路网搭建、车辆配置、实现仿真、仿真结果输出

LibCity:开源的交通预测算法库 | 面向小白,从0到1【SUMO十字路口仿真建模】路网搭建、车辆配置、实现仿真、仿真结果输出

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 457

Java&LeetCode 初入门——983. Minimum Cost For Tickets最小票价问题)

Java&LeetCode 初入门——983. Minimum Cost For Tickets最小票价问题题目个人解法官方解法方法1:Dynamic Programming (Day Variant)算法方法2:Dynamic Programming (Window Variant)算法 文内代码全部采用JAVA语言。 题目 In a country popular for train ...

红鲤鱼绿鲤鱼与赤小豆的博客 634

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Minimum Cost For Tickets

文章目录Minimum Cost For Tickets题目描述算法描述C++实现Scala实现 Minimum Cost For Tickets 题目描述 LeetCode地址:983. Minimum Cost For Tickets In a country popular for train travel, you have planned some train travelling on...

给永远比拿愉快 1287

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode //C - 983. Minimum Cost For Tickets

Abstract: This article discusses LeetCode problem 983, "Minimum Cost For Tickets," which requires calculating the minimum total cost of purchasing train tickets for a given number of travel days. Train tickets are available in 1-day, 7-day, and 30-day pass

Made in Code 430

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【LeetCode 983】门票的最低费用 Minimum Cost For Tickets

题目: 即,给定一个数组代表你一年中的什么时候会去电影院,给定另外一个数组代表一日票,七日票,跟三十日票的金额,要求出如何买票,才能使花费最少。 思路: 明显看出这个是一个动态规划的题目,因此我需要两步曲来完成,首先是状态的定义,我们发现,比如 days[1,2,3,5],我们要输出的是第5天所花费的最少金额,而且 days是严格递增的,所以我们只要求出第days[days.length - ...

卤小蛋学编程 733

【LeetCode 983】 Minimum Cost For Tickets

题目描述 In a country popular for train travel, you have planned some train travelling one year in advance. The days of the year that you will travel is given as an array days. Each day is an integer from 1 to 365. Train tickets are sold in 3 different ways:

iCode_girl的博客 209

【LeetCode】983. 最低票价 Minimum Cost For Tickets(C++ & Python)

作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/minimum-cost-for-tickets/ 题目描述: In a country popular for train travel, you have planned some train trav...

负雪明烛 4144

leetcode | 983. Minimum Cost For Tickets (动态规划)

最近做的leetcode有点多,没时间更新博客,后面多做一些基础算法题; 今天上午周赛做了一道DP题目,不过当时没有想到使用DP,囧 题目 给定一个数组days,表示今年的旅行计划,你可以买单日票,周票和月票 求:旅行的最低花费 如下特点:1 &lt;= days.length &lt;= 365;1 &lt;= days[i] &lt;= 365,元素特点是单调递增的。 Input: ...

mike_learns_to_rock的博客 1231

leetcode[983]:Minimum Cost For Tickets

本题是个求最小值问题,题目描述:如果要在一年内去旅游,现给定你旅游的日期(1-365天)的数组,一个包日车票数组价格,比如包1天2块钱,包7天7块钱,包30天15块钱这样。求一年内能把所有规定日期都旅游完的最便宜买票策略。 例: days[1,4,6,7,8,20],表明你要在1,4,6,7,8,20去旅游。(范围为1-365) costs[2,7,15],表明1天的车票是2块钱,7天的车票是7块...

努力奋斗 503

[leetcode] 983. Minimum Cost For Tickets @ python

原题 In a country popular for train travel, you have planned some train travelling one year in advance. The days of the year that you will travel is given as an array days. Each day is an integer from...

闲庭信步 610

LeetCode983. Minimum Cost For Tickets——动态规划

【代码】LeetCode983. Minimum Cost For Tickets——动态规划。

叶卡捷琳堡的博客 823

Leetcode 983.最低票价(Minimum Cost For Tickets)

Leetcode 983.最低票价 1 题目描述(Leetcode题目链接)   在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。 火车票有三种不同的销售方式: 一张为期一天的通行证售价为 costs[0] 美元; 一张为期七天的通行证售价为 costs[1] 美元; 一张为期...

qq_39378221的博客 243

983. Minimum Cost For Tickets

网址:https://leetcode.com/problems/minimum-cost-for-tickets/ 参考:https://leetcode.com/problems/minimum-cost-for-tickets/discuss/226659/Two-DP-solutions-with-pictures class Solution { public: i...

weixin_33947521的博客 86

[leetcode] 983. Minimum Cost For Tickets

Description In a country popular for train travel, you have planned some train travelling one year in advance. The days of the year that you will travel is given as an array days. Each day is an integer from 1 to 365. Train tickets are sold in 3 differen

Learning from the mistakes 171
上一篇: cocoeval计算COCO数据集box mAP源码解析(nandet test部分)
下一篇: 二值mask转polygon/RLE (coco segment格式)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值