假设你正在爬楼梯。需要 n 阶(正整数)你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
1.假如,你现在已经爬到楼顶了,你是怎么上来的?
有两种可能:一是从倒数第一个楼梯爬了一个台阶上来的;二是从倒数第二个楼梯爬了两个台阶上来的
2.假如,你现在已经爬到倒数第一个楼梯了,你是怎么上来的?
有两种可能:一是从倒数第二个楼梯爬了一个台阶上来的;二是从倒数第三个楼梯爬了两个台阶上来的
........
一层层的往下推,最终到第二层、第一层;第二层两种可能,从第一层爬一层上来的,从第0层爬两层上来的;第一层只有一种可能,从第0层爬一层上来的
同理,我们是不是可以抽象成:dp[i]=dp[i-1]+dp[i-2];是不是很熟悉,对,就是上一篇的斐波那契数列数列
再增加一点难度,假如你现在每次可以爬 1 、2、5三个台阶......