首頁 > Java > java教程 > 主體

java動態規劃實例分析

王林
發布: 2023-05-01 19:31:04
轉載
715 人瀏覽過

說明

1、動態規劃是一種程式設計原理,可以透過將非常複雜的問題分成較小的子問題來解決。

2、這個原則類似遞歸,但不同於遞歸,每個不同的子問題只能解決一次。

使用流程

確定適合上述問題的遞迴關係。

初始記憶體,陣列,矩陣的初始值。

確保當我們進行遞歸呼叫(可以存取子問題的答案)時,總是事先解決。

實例

public class dpSolution {  
    static int getValue(int[] values, int rodLength) {
        int[] subSolutions = new int[rodLength + 1];
 
        for (int i = 1; i <= rodLength; i++) {
            int tmpMax = -1;
            for (int j = 0; j < i; j++)
                tmpMax = Math.max(tmpMax, values[j] + subSolutions[i - j - 1]);
            subSolutions[i] = tmpMax;
        }
        return subSolutions[rodLength];
    }
 
    public static void main(String[] args) {
        int[] values = new int[]{3, 7, 1, 3, 9};
        int rodLength = values.length;
 
        System.out.println("Max rod value: " + getValue(values, rodLength));
    }
}
登入後複製

以上是java動態規劃實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板