力扣 動態規劃 爬樓梯

2021-09-12 07:47:04 字數 1043 閱讀 1598

說明

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

示例 1:

輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。

1 階 + 1 階

2 階

示例 2:

輸入: 3 輸出: 3 解釋: 有三種方法可以爬到樓頂。

1 階 + 1 階 + 1 階

1 階 + 2 階

2 階 + 1 階

思想

很多人知道這道題用斐波那契數列解,但是卻不知道為什麼,簡單解釋一下

每一步向上走樓梯的時候可以選擇上1步或者上2步,把這句話翻譯成動歸轉換方程就是

當前樓梯的方法數 = 上一階的方法數 + 前一階樓梯的方法數

<===>

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

所以這不就是斐波那契數列方程嘛,那麼解題就好解了。

下面直接貼**。

python code

class

solution

:def

climbstairs

(self, n:

int)

->

int:

if n <3:

return n

else

: f1, f2 =1,

2for i in

range(2

, n)

: f1, f2, f3 =f2, f3, f1 + f2

return f3

c++ code
class solution 

return res;}}

};

力扣 動態規劃 使用最小花費爬樓梯

說明 陣列的每個索引做為乙個階梯,第 i個階梯對應著乙個非負數的體力花費值 cost i 索引從0開始 每當你爬上乙個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬乙個階梯或者爬兩個階梯。您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作為初始階梯。示例 1 ...

動態規劃 爬樓梯

假設你正在爬樓梯,需要n步你才能到達頂部。但每次你只能爬一步或者兩步,你能有多少種不同的方法爬到樓頂部?比如n 3,1 1 1 1 2 2 1 3,共有3種不同的方法 返回 3 解題思路 沒接觸過動態規劃的時候,我用排列組合做的,在我這篇部落格中 可以看一下。實際上,這個題目就是乙個斐波那契數列,這...

爬樓梯 動態規劃

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階 示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1...