题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
解题思路:
可以通过推理来找出。
第3位可以由第1阶台阶跳2阶或第2阶段跳1阶段得出。
第4位可以由第2阶台阶跳2阶或第3阶段跳1阶段得出。
第5位可以由第3阶台阶跳2阶或第4阶段跳1阶段得出。
最后可以得出:
dp[i]=dp[i-1]+dp[i-2]
或者:
假设f[i]表示在第i个台阶上可能的方法数。逆向思维。如果从第n个台阶进行下台阶,下一步有2中可能,一种走到第n-1个台阶,一种是走到第n-2个台阶。所以f[n] = f[n-1] + f[n-2]. 那么初始条件了,f[0] = f[1] = 1。 所以就变成了:f[n] = f[n-1] + f[n-2]。
python代码实现:
class Solution:
def jumpFloor(self , number: int) -> int:
# write code here
if number<=2:
return number
first=1
second=2
for i in range(3,number+1):
res=first+second
first=second
second=res
return res