ホームページ > Java > &#&チュートリアル > Java動的プログラミングの例の分析

Java動的プログラミングの例の分析

王林
リリース: 2023-05-01 19:31:04
転載
739 人が閲覧しました

説明

1. 動的プログラミングは、非常に複雑な問題をより小さなサブ問題に分割することで解決できるプログラミング原理です。

2. この原理は再帰に似ていますが、再帰とは異なり、それぞれの異なる部分問題は 1 回しか解決できません。

プロセスを使用します

上記の問題に適切な再帰的関係を決定します。

初期メモリ、配列、行列の初期値。

再帰呼び出しを行うとき (サブ質問への回答にアクセスできる)、常に事前に解決されるようにしてください。

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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート