首页 > 其他 > 详细

动态规划--爬楼梯问题(入门)

时间:2019-11-29 21:56:01      阅读:100      评论:0      收藏:0      [点我收藏+]

动态规划算法要求将求解问题拆分为一系列相互交叠的子问题。

动态规划三要素:

  • 最优子结构
  • 边界
  • 状态转移函数

问题描述:假设有n层台阶,你每次能爬1层或者2层,问你又多少种方法到达n层?

第一层:1种,记为f(1)=1(边界)

第二层:2种(走2步或走两个1步),记为f(2)=2

第三层:3种(在第一层走2步或在第二层走1步),记为f(3)=f(1)+f(2)

因此第n层就与第n-1和第n-2层有关。

技术分享图片

输出:89

使用这种方式会出现重复计算的问题,因此,一般动态规划都会定义一个数组来存储前面所用到的值,修改后代码如下:

技术分享图片

动态规划--爬楼梯问题(入门)

原文:https://www.cnblogs.com/xiximayou/p/11960497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!