ITPub博客

首页 > 应用开发 > IT综合 > 街道问题 (动态规划)

街道问题 (动态规划)

原创 IT综合 作者:wxwahu 时间:2015-06-27 11:25:23 0 删除 编辑



街道问题

在下图中找出从左下角到右上角的最短路径,每步只能向右方或上方走。


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/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 三角数塔问题
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2014-05-11

  • 博文量
    5
  • 访问量
    4376