我想在一个给定的矩阵上创建一条路径,从单元格(n,m)=f(n,m)开始到位置f(1,1),规则是,值最大的单元格在该单元格中得到一个1,我们将指针移动到该单元格,如果出现连接,将0放在未选择的单元格中。重复到单元格(1,1),然后打印所用的路径。我尝试过在while循环中将&&to | |更改为| |,但这只会给我一个错误,并且输出没有任何更改。输出路径为(4,4)(3,4)(3,3)(3,2)(3,1)
输出路径应采取(4,4)(3,4)(3,3)(3,2)(3,1)(2,1)(1,1)有何建议?
public class JavaApplication6 {
/**
* @param i
* @param j
*/
public static void paste(int i,int j){
System.out.println("("+i+","+j+")");
}
public static void main(String[] args) {
System.out.println("path taken");
int[][] F =
{{0,0,50,150},
{100,200,700,900},
{600,1650,1200,1250},
{1100,1200,1200,1250}};
int rowLen = 4;
int columnLen = 4;
int i=rowLen-1;
int j=columnLen-1;
paste(i+1,j+1);
while(i!=0&&j!=0){
if(F[i-1][j]>F[i][j-1]){
i=i-1;
paste(i+1,j+1);
}
else if(F[i-1][j]<F[i][j-1]){
j=j-1;
paste(i+1,j+1);
}
else if(F[i-1][j]==F[i][j-1]){
j=j-1;
paste(i+1,j+1);
}
}
}}
1条答案
按热度按时间q9rjltbz1#
修好了!!!
这很管用