一只青蛙一次可以跳上1級(jí)臺(tái)階悍募,也可以跳上2級(jí)茧彤。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法(先后次序不同算不同的結(jié)果)蒜茴。
分析
因?yàn)槊看沃荒芴?或2級(jí)星爪,想跳上第n個(gè)臺(tái)階,必須先跳到第n-1 級(jí)或者第n級(jí)
所以F(n) = F(n-1)+F(n-2)粉私,類似于斐波那契數(shù)列
這里我犯了一個(gè)錯(cuò)誤顽腾,考慮到在n-2 級(jí),可以選擇一次跳兩級(jí)诺核,也可以選擇每次跳1級(jí)抄肖,跳兩次,以為F(n) = 2*F(n-1)+F(n-2)窖杀,實(shí)際上是錯(cuò)誤的漓摩,因?yàn)槿绻淮翁患?jí)分兩次跳的話,跳一級(jí)之后到n-1級(jí)就是F(n-1) 的情況入客,不用重復(fù)計(jì)算管毙,所以只能選擇一次跳兩級(jí)。
class Solution:
def jumpFloor(self, number):
# write code here
if number == 1 or number == 2:
return number
a,b = 1,2
for i in range(number-2):
c = a+b
a = b
b = c
return c