矩阵的最短路径

int findshortcurt()
{
    int base[4][4]={{1,3,5,9},{8,1,3,4},{6,6,6,6},{8,8,8,0}};
    int dp[4][4]={{0,},{0,}};
    dp[0][0] = base[0][0];
    int i,j;
    /*求出矩阵的第一行和第一列的步骤值*/
    for(i=1;i<4;i++)
    {
        dp[0][i] += dp[0][i-1]+base[0][i];
    }
    for(i=1;i<4;i++)
    {
        dp[i][0] += dp[i-1][0] + base[i][0];
    }
    /*求dp矩阵其他位置的数dp[i][j]*/
    for(i=1;i<4;i++)
    {
        for(j=1;j<4;j++)
        {
            dp[i][j] = minValue(dp[i-1][j],dp[i][j-1])+ base[i][j];
        }
    }
    printf("\r\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("%d ",dp[i][j]);
        }
        printf("\r\n");
    }
    return 0;
}
/*
1   4  9 18 
9   5  8 12 
15 11 14 18 
23 19 22 18 
*/

猜你喜欢

转载自blog.csdn.net/caogenwangbaoqiang/article/details/80777207