Leetcode-跳台阶问题

一次跳一阶或者跳两阶
  1. 使用递归求解
  2. 使用动态规划,可当做斐波那契数列
    第一次跳1阶,则有 F ( n − 1 ) F(n-1) F(n1)次跳法;
    第一次跳2阶,则有 F ( n − 2 ) F(n-2) F(n2)次跳法;
    因此总共的跳法为:
    F ( n ) = F ( n − 1 ) + F ( n − 2 ) F(n) = F(n-1)+F(n-2) F(n)=F(n1)+F(n2)
与斐波那契数列的不同之处

青蛙跳台阶问题: f ( 0 ) = 1 f(0)=1 f(0)=1, f ( 1 ) = 1 f(1)=1 f(1)=1, f ( 2 ) = 2 f(2)=2 f(2)=2
斐波那契数列问题: f ( 0 ) = 0 f(0)=0 f(0)=0, f ( 1 ) = 1 f(1)=1 f(1)=1, f ( 2 ) = 1 f(2)=1 f(2)=1

跳一阶,二阶,n阶台阶

1.动态规划考虑:
第一次跳1阶,则有 F ( n − 1 ) F(n-1) F(n1)次跳法;
第一次跳2阶,则有 F ( n − 2 ) F(n-2) F(n2)次跳法;
. . . ... ...
第一次跳n阶,则有 F ( 0 ) F(0) F(0)次跳法;
因此总共的跳法为:
F ( n ) = F ( n − 1 ) + F ( n − 2 ) + ⋯ + F ( 0 ) F(n) = F(n-1)+F(n-2)+\cdots+F(0) F(n)=F(n1)+F(n2)++F(0)
则:
F ( n − 1 ) = F ( n − 2 ) + F ( n − 3 ) + ⋯ + F ( − 1 ) F(n-1) = F(n-2)+F(n-3)+\cdots+F(-1) F(n1)=F(n2)+F(n3)++F(1)

使用 F ( n ) F(n) F(n)- F ( n − 1 ) F(n-1) F(n1)得到:
F ( n ) = 2 F ( n − 1 ) F(n) = 2F(n-1) F(n)=2F(n1)

F ( n − 1 ) F(n-1) F(n1)可以表示为 2 n − 1 2^{n-1} 2n1,意思为任何一阶台阶,可以跳也可以不跳,那么 n − 1 n-1 n1阶台阶表示为 2 n − 1 2^{n-1} 2n1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值