Rumah  >  Artikel  >  Java  >  Analisis contoh pengaturcaraan dinamik Java

Analisis contoh pengaturcaraan dinamik Java

王林
王林ke hadapan
2023-05-01 19:31:04685semak imbas

Penjelasan

1. Pengaturcaraan dinamik ialah prinsip pengaturcaraan yang boleh diselesaikan dengan membahagikan masalah yang sangat kompleks kepada sub-masalah yang lebih kecil.

2. Prinsip ini serupa dengan rekursi, tetapi tidak seperti rekursi, setiap sub-masalah yang berbeza hanya boleh diselesaikan sekali.

Gunakan proses

untuk mengenal pasti hubungan berulang yang sesuai untuk masalah di atas.

Nilai awal memori awal, tatasusunan, matriks.

Pastikan apabila kami membuat panggilan rekursif (dengan akses kepada jawapan kepada sub-soalan), ia sentiasa diselesaikan lebih awal daripada masa.

Instance

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));
    }
}

Atas ialah kandungan terperinci Analisis contoh pengaturcaraan dinamik Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam