两点之间的所有最短路径

时间:2019-04-21 03:31:59

标签: algorithm depth-first-search shortest-path breadth-first-search

我在10×10的阵列中有两个点,我希望这两个点之间的所有路径。
此外,我的步伐受到限制:
仅允许[(从右到上),(从右到下),(从左到上),(从下到左)]移动。
我可以为此使用哪些算法?

我尝试使用此代码,但没有给出所有路径

    void finding(int sW, int sH, int dW, int dH, String path,int strategy) {
        if(isOuted(sW, sH, dW, dH) || visited[dW][dH])return;
        visited[dW][dH] = true;
        if(strategy == 1){
        RD(sW, sH, dW, dH, path+"RU");
        RU(sW, sH, dW, dH, path+"RU");
        LU(sW, sH, dW, dH, path+"RU");
        DL(sW, sH, dW, dH, path+"RU");
        }else if strategy == 2 ...
    }

在我的方法中,对于示例RU(这意味着从右到上),我有:

private void RU(int sW, int sH, int dW, int dH, String path){

        if(isPath(++sW, sH, dW, dH)){
            System.out.println(path+"R");
            return;
        }
        if(isPath(sW, ++sH, dW, dH)){
            System.out.println(path+"RU");
            return;
        }
        finding(sW,sH,dW,dH,path,1);

    }

这是一个好方法吗?!
我想要一种更高效,更可靠的算法。

0 个答案:

没有答案