假設你正在爬樓梯。需要 n 階你才能到達樓頂。示例 1:每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是乙個正整數。
輸入: 2示例 2:輸出: 2
解釋: 有兩種方法可以爬到樓頂。
1、1 階 + 1 階
2、2 階
輸入: 3也不能說錯誤,我覺得我能想出來已經很不容易了輸出: 3
解釋: 有三種方法可以爬到樓頂。
1、1 階 + 1 階 + 1 階
2、1 階 + 2 階
3、2 階 + 1 階
然後就報超時了。。**¥#¥#@@@¥%%……此時的心情無處言表
大神們說斐波那契數列,f(n) = f(n-1) + f(n-2)
我乙個菜雞在角落裡不敢吭聲。
思路摘抄:
本質上就是斐波那契數列的乙個現實例子,
從第三階樓梯來舉例:當你爬上一階樓梯後,剩下還有兩階樓梯也就等於現在走兩階樓梯的可能,也就是2,如果是爬上兩階樓梯,就剩下一階樓梯,也就是還有一種可能,所以f(3) = f(2) + f(1)
1、遞推的**如下
int
climbstairs
(int n)
if(n ==2)
int a =
1, b =
2, temp;
for(
int i =
3; i <= n; i++
)return b;
}
2、遞迴**如下
int
_climb
(int n,
int*arr)
intclimbstairs
(int n)
如何理解斐波那契數列: 力扣 70 爬樓梯
問題描述 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2輸出 2解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階示例 2 輸入 3輸出 3解釋 有三種方法可以爬到樓頂。1...
力扣 70 爬樓梯
題目描述 簡單 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。題目鏈結 示例 1 輸入 2輸出 2解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階 示例 2 輸入 3輸出 3解釋 有三種方...
2021 02 22 力扣70題 爬樓梯
這是力扣上的一題簡單題目,可以用多種方法寫出來。方法1 遞迴 class solution 時間複雜度o 2 n 空間複雜度o n 這種方法超時了 方法2 動態規劃 思路 用dp i 1 dp i 2 記錄前兩次要用的方法,使時間複雜度降到o n class solution return dp n...