劍指offer面試題09-3----跳臺(tái)階(變態(tài)版)

題目:一只青蛙一次可以跳上1級(jí)臺(tái)階,也可以跳上2級(jí)……它也可以跳上n級(jí)。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法。

思路:青蛙跳n級(jí)臺(tái)階的跳法相當(dāng)于青蛙跳青蛙跳n-1級(jí)臺(tái)階后再跳1級(jí),或者青蛙跳n-2級(jí)臺(tái)階后再跳2級(jí)....或者青蛙跳2級(jí)后再跳n-2級(jí),或者跳1級(jí)后再跳n-1級(jí),或者直接跳n級(jí)。因此 f(x) = f(x-1) + f(x-2) + f(x-3) + .... + f(2) + f(1) + 1, n>=2,當(dāng)n<2時(shí)的情況易得。

Python代碼如下:

class Solution:
    def jumpFloorII(self, number):
        # write code here
        dp = [0, 1, 2]
        
        for floor in range(3, number+1):
            dp.append(0)
            for i in range(floor):
                dp[floor] += dp[i]
            dp[floor] += 1
            
        return dp[number]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容