求算法, 生成全排列(其中镜像对称的算重复,得去掉) 。比如 213和312 只能留一个。
网上搜遍了,都是直接全排列,没有产生我想要的效果的。
再举个例子:13452和25431 就是重复的;
各位大牛帮帮忙~~万分感激~ToT。。。 算法 C/C++ 特殊全排列
[解决办法]
DFS
标记某个排列的时候把镜像对称的排列也标记了不就得了
[解决办法]
砍掉反向数组大于正向数组的解不就完了
lz的问题是先要把正常的全排列代码看懂再来做这问题。
[解决办法]
实际7楼已经说的很清楚了,随便找个全排列的函数,每个数据计算完之后,如果第一个数大于最后一个就加入链表里面,反之则不加入,这样不就是把镜面的去掉了么?