動態規劃 走台階(入門1)

2021-08-19 21:33:37 字數 541 閱讀 8196

/*

題目:有n級台階,乙個人每次上一級或者兩級,問有多少種走完n級台階的方法?

分析:由分析可知:

n階台階,只可能是從n-1或是n-2的台階上走上來的,台階n的階段依賴的是n-1和n-2的子階段,

所以狀態轉移方程為dp[n] = dp[n-1] + dp[n-2],屬於最簡單的動態規劃問題 

*/#include

#define n 20        //台階數為20

using namespace std;

int dp[n];          //全域性陣列,存放決策表

int fun(int n)      //返回台階數為n的走法

dp[n-1] = fun(n-1);        //若不為1或2則進行遞迴計算

dp[n-2] = fun(n-2);

dp[n] = dp[n-1]+dp[n-2];   //狀態轉移方程

return dp[n];

}int main()

演算法 動態規劃 走台階問題

有一道經典題目 有一座高度是10級台階的樓梯,從下往上走,每跨一步只能向上1級或者2級台階,要求程式求出一共多少中走法.第一種方法 暴力的利用排列組合,寫乙個多層巢狀迴圈遍歷出所有的可能性,但是時間複雜度是指數級的.這裡就用到了動態規劃,當然也有遞迴的思想,我們假設你只差一步就到第10級台階,會出現...

動態規劃走樓梯

main.cpp 動態規劃走樓梯 created by liujan on 11 18 14.問題描述 乙個樓梯有20級,每次走1級或2級,從底走到 頂一共有多少種走法?分析 假設從底走到第n級的走法有f n 種,走到第n級 有兩個方法,乙個是從第 n 1 級走1步,另乙個是從第 n 2 級走2步,...

動態規劃走樓梯 乙個題目幫你入門動態規劃演算法

如果有一座高度是10級台階的樓梯,從下往上走,每跨一步只能向上1級或者2級台階。要求用程式來求出一共有多少種走法。如果每次走1級台階,一共走10步,這是其中一種走法。我們可以簡寫成 1,1,1,1,1,1,1,1,1,1。如果每次走2級台階,一共走5步,這是另一種走法。我們可以簡寫成 2,2,2,2...