首页 > Java > java教程 > java动态规划实例分析

java动态规划实例分析

王林
发布: 2023-05-01 19:31:04
转载
746 人浏览过

说明

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板