求一个最优路径算法的思路,在最近项目开发的过程中,需要用到下面这样一个算法:用户可以输入比如1-2 2-3 2-1 3-4 4-5 6-1之类的数字对,要求能求出它的最优路径-----(指的是最长的那一条,比如上面的路径有2-3-4-5,也有6-1-2,还有1-2-3-4-5等等之类的,越长越优,但是不能出现封闭的路径,比如1-2-1这种,还有就是如果说你有两条或更多不同的最长路径都可以是最优路径,那任选其一就可以了)
求高手用java代码写出来(下面是我写好的用户输入部分,可以得到用户输入的每个键值对,用二维数组保存起来了,只需要出求最优路径算法的函数就可以了,写出来了我再给100分):
public class SuanFa
{
public static void main(String [] args) throws Exception
{
System.out.println("你输入的参数对为:");
if(args.length>0)
{
String [][] strArray =new String[args.length][2];
for(int i=0;i<args.length;i++)
{
/*取出用户输入的键值对并加入到二维数组strArray中*/
String argValue=args[i];
String [] keyAndValue=argValue.split("-", 2);
String key= keyAndValue[0];
String value= keyAndValue[1];
strArray[i][0]=key;
strArray[i][1]=value;
}
for(int i=0;i<strArray.length;i++)
{
System.out.print(strArray[i][0]+"-"+strArray[i][1]);
System.out.println();
}
}
else
{
System.out.println("请输入参数!");
}
}
我上面的路径只是举几个例子,没有全部写出来,但是意思就是要找最长的那一条!