簡單的動態規劃 爬樓梯問題

2021-08-25 02:51:34 字數 640 閱讀 3792

#include

#include

using

namespace

std;

/*有一座高度是10級台階的樓梯,從下往上走,每跨一步只能向上1級或者2級台階。

要求用程式來求出一共有多少種走法。

*///遞迴演算法

int getclimbingways(int n)

if(n == 1)

if(n == 2)

return getclimbingways(n - 1) + getclimbingways(n - 2);

}//備忘錄演算法: 時間和空間複雜度均為o(n)

map memo;

int getclimbingways2(int n)

if(n == 1)

if(n == 2)

if(memo.count(n))

return memo[n];

else

}//動態規劃求解:每一次只儲存前兩步的結果

//時間複雜度o(n),空間複雜度o(1)

int getclimbingways3(int n)

return temp;

}int main()

爬樓梯問題 動態規劃

題目 乙個人每次只能走一層樓梯或者兩層樓梯,問走到第80層樓梯一共有多少種方法。解題思想 設走第i層樓梯需要dp i 中方法,走第i 1層樓梯需要dp i 1 中方法。則走第 i 1層樓梯的方法種數為dp i 1 dp i 種。實動態規劃解題的主要思想就是找出遞推式,然後利用子問題的解來求最後的最優...

動態規劃(爬樓梯問題)

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

動態規劃 爬樓梯

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