一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
class Solution:
def jumpFloor(self, number):
#斐波那契数列的应用
#假定第一次跳的是1阶,那么剩下的是n-1个台阶,跳法是f(n-1)
#假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2)
#那总的问题就变成了F(n)=F(n-1)+F(n-2)
# write code here
'''
n = 1 : 1
n = 2 : 1+1 = 2
n = 3 : dp[n-2]+dp[n-1]
'''
if number == 1 or number == 2:
return number
dp = [1,2]
for i in range(number-2):
dp.append(dp[-1]+dp[-2])
return dp[-1]