我必须为我的学习准备一些动态编程的例子。特别是在优化任务中。作为第一个例子,我决定编写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]);