谢谢了!
你要帮我改出来,我也送您一千金币,
不过我现在好象还不知道怎么送出去
金币不用了,给你说说我大概的思路吧。
无论12楼,16楼,还是我的算法都是要找出所有的组合。或者是求出16楼的那个多元一次方程的所有整数解。没什么花巧。只要知道的1~N的排列顺序就可以推出0~2N内他们是怎么排列的了,这两者是一一对应的。所以然后再看是不是对的。于是问题就变成了1~N这些数怎么排列。共N!种组合。可能算法书上会有例子。这里我自己想的办法就是从空链表起叉入第一个数。“1”,然后“2”可以在“1”之前叉入,也可以在“1”之后插入。对于每一个结果,用“3”向其中插入,“3”可以选择的位置有3个,于是这样递归找出所有排列。复杂度为N!。对最后生成的没一个排列进行验证。例如1~8的一个排列是13245768,那么插入1在第0个和第2个位置,插入3在第1个和第4个位置。插入2在第2个位置,发现第2个位置已被占,于是想后找知道有空位的地方位置。看第二个“2”的位置是否合法,如果不合法,就错了,继续生成下一个排列。
http://myajax95./