說明
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是乙個正整數。
示例 1:
輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。示例 2:1 階 + 1 階
2 階
輸入: 3 輸出: 3 解釋: 有三種方法可以爬到樓頂。思想1 階 + 1 階 + 1 階
1 階 + 2 階
2 階 + 1 階
很多人知道這道題用斐波那契數列解,但是卻不知道為什麼,簡單解釋一下
每一步向上走樓梯的時候可以選擇上1步或者上2步,把這句話翻譯成動歸轉換方程就是
當前樓梯的方法數 = 上一階的方法數 + 前一階樓梯的方法數
<===>
f(n) = f(n - 1) + f(n - 2)
所以這不就是斐波那契數列方程嘛,那麼解題就好解了。
下面直接貼**。
python code
c++ codeclass
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
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...