刷題 跳台階 python

2021-10-20 07:36:18 字數 1073 閱讀 6415

題目:乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法(先後次序不同算不同的結果)。

輸入:1

輸出:1

輸入:4

輸出:5

思路:一次只有兩種跳法,要麼跳一級,要麼跳兩級,假設 n 級台階一共有 f(n

)f(n)

f(n)

種跳法,那麼最後一次可能是跳了一級也可能是跳了兩級,即 f(n

)=f(

n−1)

+f(n

−2

)f(n) = f(n-1) + f(n-2)

f(n)=f

(n−1

)+f(

n−2)

,可以採用遞迴方法。

# -*- coding:utf-8 -*-

class solution:

def jumpfloor(self, number):

# write code here

if number == 0:

return 1

elif number == 1:

return 1

else:

return self.jumpfloor(number-1)+self.jumpfloor(number-2)

超時,改用迭代的方法寫,從遞迴的出口開始寫,逐步遞增。

# -*- coding:utf-8 -*-

class solution:

def jumpfloor(self, number):

# write code here

if number == 0:

return 1

elif number == 1:

return 1

else:

tmp1 = 1

tmp2 = 1

for i in range(2,number+1):

tmp = tmp1 + tmp2

tmp1 = tmp2

tmp2 = tmp

return tmp

牛客刷題 跳台階

題目 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 天哪,跳台階都不會寫.依稀記得本科離散好像講過這個題,理解了跳台階的原理就很好寫了,如果直接說讓我寫乙個斐波那契數列,那我肯定還是可能寫的.跳台階的話首先知道n 1時,k 1,n...

劍指Offer刷題筆記 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。首先我們考慮最簡單的情況。如果只有1級台階,那麼顯然只一種跳法。如果有2級台階,那就有兩種跳法 一種是分兩次跳,每次跳1級 另一種是一次跳2級。接著,我們來討論一般情況。我們把n級台階時的跳法看成是n的函式,記...

劍指offer刷題(八)跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 本質上是斐波那契數列。記跳n級台階的跳法有 f n 種,如果最後一次跳了兩級,那麼一共的跳法是 n 2 級台階的跳法,即 f n 2 如果最後一次跳了一級,那麼一共的跳法是 n 1 級...