1.套路:
1)遞迴:根據題目寫出遞迴版本;
2)記憶化搜尋:用某種結構儲存已經計算過的資訊,省去重複計算的過程;
3)嚴格表結構:將遞迴套路轉化為填表,注意考慮越界問題;
2.問題分析:
1)機械人走路問題:
code(暴力遞迴版本):
public static int process(int n, int e, int rest, int cur)public static void main(string args)
//結果輸出 3
public static int process(int n, int e, int rest, int cur, int dp)if(cur == 1)
dp[rest][cur] = process(n, e, rest - 1, 2, dp);
else if(cur == n)
dp[rest][cur] = process(n, e, rest - 1, n - 1, dp);
else
dp[rest][cur] = process(n, e, rest - 1, cur - 1, dp)
+ process(n, e, rest - 1, cur + 1, dp);
return dp[rest][cur];
}public static void walk1(int n, int e, int rest, int cur)
{int dp = new int[rest+1][n+1];//記錄表
for (int i = 0 ; i <=rest ; i++)
{for (int j = 0 ; j <=n ; j++)
{dp[i][j] = -1;
遞迴改動態規劃 正則匹配
題目描述 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 abaca 匹配,但是與 aa.a 和 ab a 均不匹配 遞迴解法,原因都在注...
動態規劃 遞迴
動態規劃是求解包含重疊子問題的最優化方法 1.基本思想 將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解 注意 不是簡單分而治之 2.只能應用於有最優子結構的問題 即區域性最優解能決定全域性最優解,或問題能分解成子問題來求解 3.具有無後效性。它要求每乙個問題的決策,不能夠對解...
遞迴 動態規劃 POJ Help Jimmy
1 3 8 17 20 0 10 8 0 10 13 4 14 3 首先明確遞迴函式的功能 由於向左走和向右走是性質一樣的兩個子問題,因此此時遞迴函式的就是針對當前平板的向左 右走,計算時間 遞迴結束條件 當遞迴到第n個平板時,遞迴結束,返回當前高度 當前高度小於限定的最高高度 確定遞迴的等價關係 ...