路径数量为2d阵列

时间:2012-12-21 13:40:33

标签: java

我必须找到从一个索引到另一个索引的最短路径。

为了推进索引,索引必须是一个“邻居”,索引中的值与旁边的值相同。我必须创建一个函数,以递归方式计算所有可能的路径,然后将所有路径全部放在矩阵中。

到目前为止,我的想法是使用洪水填充算法并以某种方式计算每条路径。

好吧所以我一直坐在这里试图弄清楚如何做到这一点,到目前为止我提出了这个想法:创建一个重复的数组,在每个索引中将显示我与我的初始节点的距离。我不确定我是否正确这样做所以需要一些帮助,这就是我写的:

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;
}

1 个答案:

答案 0 :(得分:0)

您给出的2D矩阵实际上称为邻接矩阵。我想你会发现Dijkstra的算法很有用,或者一旦你找到了目标顶点就会停止广度优先搜索。