劍指offer面試題09-2----跳臺階

題目:一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

思路:青蛙跳n級臺階的跳法相當于青蛙跳青蛙跳n-1級臺階后再跳1級,或者青蛙跳n-2級臺階后再跳2級,因此 f(x) = f(x-1) + f(x-2) , n>=2,當n<2時的情況易得。

Python代碼如下:

class Solution:
    def jumpFloor(self, number):
        dp = [0, 1, 2]
        
        for i in range(3, number+1):
            dp.append(dp[i-1]+dp[i-2])
            
        return dp[number]

    def jumpFloor2(self, number):
        # 空間復雜度O(1)
        dp = [0, 1, 2]
        if number<=2:
            return dp[number]
        left = 1
        right = 2
        for i in range(3, number+1):
            mid = right
            right = left + right
            left = mid
        return right
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容