【发布时间】:2015-11-25 16:54:15
【问题描述】:
我正在尝试在 techgig.com 上进行在线测试。 问题是找到从矩阵左上角到右下角的最小路径。 我正在尝试使用 C 语言对此进行编码。 minimumcost 函数已经给出,我不能更改它。
char* minumumcost(char* input1[],int input2)
其中 input1 是矩阵,input2 是矩阵中的行数。
但是,由于我对 C 的了解有限,我只知道在将矩阵声明为二维数组时如何操作它。
对于二维数组我打算做如下操作。
这里的成本矩阵是 cost[10][10] \ 而(point1!=n && point2!=n) {
if(cost[a][j+1]<cost[a+1][j] && cost[a][j+1]<cost[a+1][j+1])
{
min=cost[a][j+1];
s[k]='R';
k++;
j++;
point1=a;
point2=j;
}
else if(cost[a+1][j]<cost[a+1][j+1] && cost[a+1][j]<cost[a][j+1])
{
min=cost[a+1][j];
s[k]='B';
k++;
a++;
point1=a;
point2=j;
}
else if(cost[a+1][j+1]<cost[a+1][j] && cost[a+1][j+1]<cost[a][j+1])
{
min=cost[a+1][j];
s[k]='D';
a++;
j++;
k++;
point1=a;
point2=j;
}
}
\ 一个例子表明,矩阵的输入是以这种形式给出的。 {5#2#3#2,8#5#5#3,1#4#7#6,3#3#6#5},4 其中 4 是行数,其余是行的元素。
问题是如何使用 input1[] 来做到这一点? 请尽快帮助我。 测试有时间限制。
【问题讨论】: