我必须找到从一个索引到另一个索引的最短路径。
为了推进一个索引,索引必须是一个“邻居”,在索引内的值与它旁边的值相同。我必须创建一个函数,以递归方式计算所有可能的路径,然后将所有路径放入矩阵中。
到目前为止,我的想法是在哪里使用洪水填充算法并以某种方式计算每条路径。
好的,所以我在这里坐了很长时间试图弄清楚如何做到这一点,到目前为止,我想到了这个想法:创建一个重复的数组,在每个索引中都会显示到我的初始节点的距离。我不确定我是否正确执行此操作,因此需要一点帮助,这就是我写的:
public static int[][] createdistancematrix(int[][] map, int i, int j) {
int[][] temp = new int[map.length][map[0].length];
map[i][j] = 0;
int count = 0;
filldistance(temp, i, j,count);
return temp;
}
public static int[][] filldistance(int[][] temp, int i, int j,int count) {
if ((i<temp.length) && (i>=0) && (j<temp.length) && (j>=0)) {
temp[i][j] = count;
count++;
//recursive call for north east west south.
filldistance(temp, i-1,j, count);
filldistance(temp, i+1,j, count);
filldistance(temp, i,j-1, count);
filldistance(temp, i,j+1, count);
}
return temp;
}