首页 > 应用开发 > IT综合 > 街道问题 (动态规划)
街道问题
在下图中找出从左下角到右上角的最短路径,每步只能向右方或上方走。
package com.iflytek.dp;

public class Street{
private int[][][] s = {
{{0, 5, 4, 6, 2},
{0 ,3, 6, 3, 5},
{0 ,4, 6, 3, 5},
{0 ,3, 7, 4, 8}},
{{0, 8, 2, 7},
{0, 7, 8, 6},
{0, 4, 5, 3},
{0, 3, 9, 5},
{0, 7, 4, 3}}
};
private int[][] p = {
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0}};
private void func() {
for (int i = 0; i <= 3; i++)
for (int j = 0; j <= 4; j++) {
if (i == 0 && j == 0)
p[i][j] = 0;
else {
int tempA = 0;
int tempB = 0;
if (i >= 1 && j >= 1) {
tempA = p[i - 1][j] + s[1][j][i];
tempB = p[i][j - 1] + s[0][i][j];
p[i][j] = (tempA <= tempB) ? tempA : tempB;
} else if (i >= 1) {
p[i][j] = p[i - 1][j] + s[1][j][i];
} else {
p[i][j] = p[i][j - 1] + s[0][i][j];
}
}
System.out.println("p[" + i + "]["+ j +"]: " + p[i][j]);
}
//System.out.println(p[3][4]);
}
public static void main(String[] args){
new Street().func();
}
}
在下图中找出从左下角到右上角的最短路径,
每步只能向右方或上方走。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29653519/viewspace-1713956/ ,如需转载,请注明出处,否则将追究法律责任。