当前位置: 首页 > news >正文

湖南省房屋和城乡建设部网站打赏网站怎么建设

湖南省房屋和城乡建设部网站,打赏网站怎么建设,济南企业网站建设公司,wordpress更换图标本题求解最小值,思路是动态规划,但是遇到的问题是:动态规划更新的顺序和步长,以及可能存在的递归溢出问题。 1、确定dp数组含义 dp[i]表示第i天到最后一天(可能不在需要出行的天数里),需要花费…

本题求解最小值,思路是动态规划,但是遇到的问题是:动态规划更新的顺序和步长,以及可能存在的递归溢出问题。

1、确定dp数组含义

dp[i]表示第i天到最后一天(可能不在需要出行的天数里),需要花费的最少出行价格,也就是如果需要提前买票的价格是计算在第i天的价格的。

2、确定递推公式

对于当前的dp[i],有3种可选的方案:1天、7天、30天,分别代表了更新后的dp位置。

dp[i] = min(dp[i + 1] + cost[0], dp[i + 7] + cost[1], dp[i + 30] + cost[2]) 

3、确定遍历顺序

因为当前买票的最小值依赖于之后的dp,所以是从后往前遍历,同时采用递归的写法,因为顺序遍历开销大而且判断条件比较复杂:

3.1确定终止条件:超出了365天的限制

if i > 365: return 0

3.2如果在days内的更新

return dp(i) = min(dp(i + 1) + cost[0], dp(i + 7) + cost[1], dp(i + 30) + cost[2]) 

3.3如果不在days内的更新

return dp(i+1)

4、确定初始化

初始化dp数组为0即可,长度为366,和days的索引保持一致。

class Solution:def mincostTickets(self, days: List[int], costs: List[int]) -> int:duration = [1, 7, 30]dp = [0 for _ in range(366)]@cachedef dp(i):if i > 365:return 0elif i in days:return min(dp(i + d) + c for c, d in zip(costs, duration))else:return dp(i+1)return dp(1)

这里使用了Python3的@cache装饰特性,用来储存递归的新数据节省时间开销。

对于python2、java可以使用memo = {}记忆化字典来储存每一个dp,如果是新的就储存,见过的直接返回。

http://www.15wanjia.com/news/169455.html

相关文章:

  • 网站开发个人简介范文网站开发实践实验报告
  • 网站要服务器吗科学新概念seo外链平台
  • 西安网站制作厂家seo网站服务公司
  • 重庆求建网站wordpress不支持中文
  • 负责网站建设和网络推广的wordpress作者链接
  • 做电影网站服务器动漫做暧视频在线观看网站
  • 东莞市专注网站建设品牌宁波seo网站推广软件
  • 第三方微信网站建设白酒网站模板
  • 网站关键词从哪改成都地区网站开发成本
  • 深圳快速网站制作找熟人做网站的弊端
  • 印度网站域名seo赚钱方式
  • 沈阳网络建网站个人杭州网站建设有限公司
  • 上海高端建设网站深圳网页制作推广排名
  • 晋城购物网站开发设计注册公司需要什么条件太原
  • 怎么制作网站视频盐城网站建设厂商
  • 互联网行业属于什么行业优化网站最好的刷排名软件
  • 网站建好了怎么做才赚钱北京网站建设亿玛酷适合5
  • 网页建站系统网页源代码怎么看
  • 怎样做影视网站不侵权wordpress远程包含
  • 网站开发的技术简介是什么网站域名 邮箱
  • 如何在百度创建网站管理人员需要培训哪些课程
  • 学校网站建设学生文明上网高新区网站开发
  • 网站开发百度云wordpress最近浏览器
  • 网站后台添加炒域名 网站
  • 网站seo优化多少钱大良购物网站建设
  • 查询网站是哪家公司做的太极seo
  • 怎么做社交网站id wordpress
  • seo网站优化培训班石家庄网站开发建设
  • 我做动作你来猜的网站网站建设和软件开发
  • 手机网站建设电话咨询农产品网站建设需求