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

企业网站建设公司 末路南阳旅游网站建设

企业网站建设公司 末路,南阳旅游网站建设,建设银行的网站是多少钱,剁椒怎么做制作方法本题求解最小值,思路是动态规划,但是遇到的问题是:动态规划更新的顺序和步长,以及可能存在的递归溢出问题。 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.yayakq.cn/news/250462/

相关文章:

  • 1.0钓鱼网站开发--站点说明网站建设与运营固定资产
  • 北京网站建设上石榴汇在哪个网站做跨境电商
  • 泰州网站建设优化华电集团班组建设网站
  • 做机器学习比赛的网站门户网站作用
  • 徐州网站建设案例极智装
  • 常州网站建设方案策划搭建网站钱
  • 网站建网站建设企业电话网络运营商包括哪些
  • 企业建站工具网址的英文
  • 韩城建设局网站wordpress绿色主题
  • 网站程序和数据库网站建设新零售
  • 做的好的排版网站南京做网站价格
  • 企业网站的步骤网站开发的就业前景如何
  • 电脑可以做网站吗装宽带需要多少钱
  • 高端人才做兼职的招聘网站有哪些温州做网络推广的公司
  • 前端静态网站开发网站怎么做下载
  • 为什么建设银行网站打不开霸州放心的网络建站
  • 网站服务器位于北美安康电商网站建设
  • 自己做的网站出现乱码天元建设集团有限公司 李增启 电话
  • 网站建设备案 优帮云鞍山58路公交车路线
  • 开源的公司网站如何更改wordpress语言
  • 在线做GO分析的网站wordpress 3.3.1 漏洞
  • 浦东新区建设工程安全质量监督站网站深圳营销型网站建设推广服务
  • 网站建设推广哪家好东莞浩智专业网站建设哪家好
  • 社区网站设计策划书3000字可以做早安图片的网站
  • 泸州工投建设集团有限公司网站手工包网站建设策划书
  • 网站制作 网站建设 杭州做一个15页的网站怎么做
  • 新乡网站设计青岛网页建设
  • 厦门过路费网站成都科技网站建设咨询
  • 商城网站 搭建莆田百度seo排名
  • 商城网站平台自适应型网站建设多少钱