(java)百度笔试之:求从某一点开始遍历所有点的最短距离

上代码:(基于FLOYD算法,很简单的就做出来了)

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;

public class Main {
	    private static int max=Integer.MAX_VALUE;  
	    private static double [][]dist;                                     
	    private static int [][]path;                                  
	    private static ArrayList list=new ArrayList();  
	    public static void findCheapestPath(int begin,int end,double Arcs[][]){  
	        floyd(Arcs);  
	        list.clear();  
	        list.add(begin);  
	        findPath(begin,end);  
	        list.add(end);  
	    }  
	      
	    public static void findPath(int i,int j){  
	        int k=path[i][j];
	        if(k==-1)  
	            return ;  
	        findPath(i,k);  
	        list.add(k);  
	        findPath(k,j);  
	    }  
	  
	    public static void floyd(double [][] Arcs){  
	        int n=Arcs.length;  
	        for(int i=0;iL=list;
		                System.out.println("路径长度:"+dist[i][j]);  
		                if(dist[i][j]


你可能感兴趣的:((java)百度笔试之:求从某一点开始遍历所有点的最短距离)