leetcode算法题--最低票价★
原题链接:https://leetcode-cn.com/problems/minimum-cost-for-tickets/
1、递归+记忆化
vector<int> days,costs;
map<int,int> memo;
vector<int> duration{1,7,30};int mincostTickets(vector<int>& days, vector<int>& costs) {this->costs=costs;this->days=days;return dfs(0);
}int dfs(int i){int len=days.size();if(i>=len){return 0;}int ans=INT_MAX;if(memo.count(i)){return memo[i];}int j=i;for(int k=0;k<3;k++){while(j<len&&days[j]<days[i]+duration[k]){j++;//找出i之后购买相应天数火车票的位置j}ans=min(ans,dfs(j)+costs[k]);}memo[i]=ans;return ans;
}
2、动态规划+记忆化
用递归方法实现的动态规划
dp(i)表示第i天出行的最小花费
状态转移
dp(i)=min(dp(i+1)+costs[0],dp(i+7)+costs[1],dp(i+30)+costs[2])
使用记忆化方法,将每一步的状态保存到memo中,如果每次dp时memo中已有就直接返回。
vector<int> costs;
set<int> dayset;
map<int,int> memo;
int mincostTickets(vector<int>& days, vector<int>& costs) {this->costs=costs;for(auto day:days){dayset.insert(day);}return dp(0);
}int dp(int i){if(i>365){return 0;}int ans=0;if(memo.count(i)){return memo[i];}if(dayset.count(i)){ans=min(min(dp(i+1)+costs[0],dp(i+7)+costs[1]),dp(i+30)+costs[2]);}else{ans=dp(i+1);}memo[i]=ans;return ans;
}
leetcode算法题--最低票价★相关推荐
- LeetCode算法题-Nth Digit(Java实现)
这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...
- LeetCode算法题-Reverse Linked List(Java实现)
这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...
- LeetCode算法题-Convert a Number to Hexadecimal(Java实现)
这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...
- leetcode算法题--零钱兑换
原题链接:https://leetcode-cn.com/problems/coin-change/ 相关题目:leetcode算法题–完全平方数★ 动态规划 dp[i] i从0到amount,dp[ ...
- leetcode算法题-- 买卖股票的最佳时机
原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 这类股票题目请见leetcode算法题–最佳买卖股票时机含 ...
- leetcode算法题--买卖股票的最佳时机 II
原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 这类股票题目请见leetcode算法题–最佳买卖股票 ...
- leetcode算法题--买卖股票的最佳时机含手续费
原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 这类股票题目请见 ...
- leetcode算法题--完全平方数★
原题链接:https://leetcode-cn.com/problems/perfect-squares/ 相关题目:leetcode算法题–零钱兑换 1.回溯法 就是暴力法,套路就是递归,但是有很 ...
- leetcode算法题--不同的二叉搜索树
原题链接:https://leetcode-cn.com/problems/unique-binary-search-trees/ 相关题目:leetcode算法题--不同的二叉搜索树 II 1.递归 ...
最新文章
- 《软件开发性能优化系列》之主键、索引设计
- SAP 金额在表中的存储及货币转换因子
- 通过自定义资源扩展Kubernetes
- 关于Spring Bean实例注册的流程
- 炫技式的精彩对辩撑起《哗变》
- delphi 解析一维条码_一维码和二维码区别有哪些
- Android:进度条加载
- java junit 运行_运行Junit方法项目启动不了
- 机器学习笔记(六):数据归一化 | 凌云时刻
- netstat 查看网络连接、路由表、接口状态、端口信息
- nginx系列第一篇:nginx源码下载,编译和安装
- 手机上最好用的五笔输入法_手机输入法哪家最好用?我推荐百度,不好用你打我...
- CF364D Ghd
- 腾达无线路由器怎么设置能让自己的网速快
- python绘制黑白棋盘_python – 在二维数组中创建一个黑白棋盘
- (详细易懂)一篇文章让你读懂到底什么是Ajax
- [Andriod官方训练教程]管理Activity的生命活动之开始一个Activity
- 金融学本科跨考计算机,跨考研究生怎么选专业,计算机金融最喜欢谁?小编今天告诉你...
- 英语读书笔记-Book Lovers Day 06
- Go之Go语言是什么?Go有什么特点?Go语言的应用前景如何?
热门文章
- python在审计中的应用-【干货】Python自动化审计及实现
- python详细安装教程linux-Linux系统如何安装Python?新手教程
- 不属于python开发用户界面第三方库的是-模拟试卷C【单项选择题】
- python三层装饰器-python中自带的三个装饰器的实现
- 查看python版本号-怎么查看python版本号
- python爬虫正则表达式实例-Python 正则表达式爬虫使用案例解析
- python学习音频-机器学习利用Python进行音频数据增强
- html5知识总结,HTML5初级知识总结
- python中的迭代库
- 网络编程学习笔记(tcp_connect函数)