動態規劃(爬樓梯問題)

2021-09-27 13:24:29 字數 1019 閱讀 8703

問題:

有 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...