您当前的位置: 首页 >  动态规划

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

动态规划算法-爬楼梯

发布时间:2017-03-01 10:09:54 ,浏览量:0

0?wx_fmt=png 

一、问题描述

一个楼梯有20级,每次可以爬1级或2级,请问从底到顶一共有多少种方法?

二、分析思路

步骤1:用函数的形式来表示题目结果。

设f(x)=y,表示一个有x级的楼梯,从底到顶爬上去一共有y种方法。

本题要求的便是f(20)的结果。

步骤2:分析递推情况。

我们首先来分析第一次爬楼梯的情况。在第一次的时候,我们有2种选择即可以爬1级,也可以爬2级。

先分析第一种情况,如果选择了爬1级一共有多少种方法呢?

我们知道第一次爬1级,那么楼梯还剩下20- 1 = 19级,接下来其实就是要计算爬19级楼梯有多少种方法,而这个答案就是f(19),根据步骤1的f(x)函数的意义即可得出。

注:此处大家务必要了解f(x)函数的意义,爬x级楼梯有y种方法。

同理,如果选择了爬2级,则有f(20-2)即f(18)种方法。

我们将两种选择的结果加起来就可以得到f(20)的结果,即f(20)= f(19) + f(18),表示如果第一次选择了爬1级会有f(19)种方法,或第一次选择了爬2级会有f(18)种方法。

那么如何求f(19)和f(18)呢?这个问题相信大家已经知道答案了,思路和上述分析一样。

递推关系的分析是动态规划算法最为核心的地方,请大家务必掌握分析思路。

步骤3:算法实现。

后续讲解。

三、总结

本文给大家介绍了利用动态规划算法求解爬楼梯的问题,您掌握了吗?

如果您对算法或编程感兴趣,欢迎扫描下方二维码并关注公众号“算法与编程之美”,和您一起探索算法和编程的神秘之处,给您不一样的解题分析思路。

0?wx_fmt=jpeg

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3491s