此解决方案是否归类为动态编程?

时间:2015-01-19 22:55:27

标签: optimization dynamic-programming

我必须为我的学习准备一些动态编程的例子。特别是在优化任务中。作为第一个例子,我决定编写alghoritm以找到(n,m)矩阵上从点(0,0)到点(n,m)的路径,使得路径和将是最低的。它似乎工作正常,但请确保我,如果这个alghoritm可以归类为动态编程。能否请您参考一些使用动态编程实现优化任务的解决方案?

private static int[][] MATRIX = {
    {1,8,4,2},
    {1,1,4,2},
    {1,1,1,6}
};

for (int i = MATRIX.length - 1; i >= 0; i--)
    {
        for (int j = MATRIX[i].length - 1; j >= 0; j--)
        {
            int temp;
            if (i + 1 < MATRIX.length && j + 1 < MATRIX[i].length)
                temp = Math.min(MATRIX[i + 1][j], MATRIX[i][j + 1]);
            else if (i + 1 < MATRIX.length)
                temp = MATRIX[i + 1][j];
            else if (j + 1 < MATRIX[i].length)
                temp = MATRIX[i][j + 1];
            else
                temp = 0;
                MATRIX[i][j] += temp;
         }
    }
    System.out.println(MATRIX[0][0]);

0 个答案:

没有答案