問題:
有 n 階台階, 每次可以走 1 或 2 步,請問走到第 n 階台階一共有多少種走法?
解:設有 f(n) 種走法
第一步: 1 2
第二步: f(n-1) f(n-2)
狀態方程:f(n) = f(n-1) + f(n-2)
n>2
f(0)=0, f(1)=1, f(2)=2;
函式:
int
function
(int n)
;int i;
if( n>
0&& n<3)
return arr[n]
;for
( i=
3; i<=n; i++
) arr[i]
= arr[i-1]
+ arr[i-2]
;return arr[n]
;}
有 n 階台階, 每次可以走 1 、2、3 … 、n 步,請問走到第 n 階台階一共有多少種走法?
解:設有 f(n) 種走法
第一步: 1 2 3 … n
第二步: f(n-1) f(n-2) f(n-3) f(0)
狀態方程:f(n) = f(n-1) + f(n-2)+f(n-3)+…+f(0)
f(n-1) = f(n-2)+f(n-3)+…+f(0)
f(n) = 2*f(n-1) n>1
f(0)=0, f(1)=1;
函式:
```c
intfunction
(int n)
;int i;
if( n>
0&& n<2)
return arr[n]
;for
( i=
2; i<=n; i++
) arr[i]=2
* arr[i-1]
;return arr[n]
;}
爬樓梯問題 動態規劃
題目 乙個人每次只能走一層樓梯或者兩層樓梯,問走到第80層樓梯一共有多少種方法。解題思想 設走第i層樓梯需要dp i 中方法,走第i 1層樓梯需要dp i 1 中方法。則走第 i 1層樓梯的方法種數為dp i 1 dp i 種。實動態規劃解題的主要思想就是找出遞推式,然後利用子問題的解來求最後的最優...
動態規劃 爬樓梯
假設你正在爬樓梯,需要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...