描述:输入一个数字m输出1-m的全排列。
首先思考:假如有编号为1,2,3的三张扑克牌和编号为1,2,3的3个盒子现在需要将这3张扑克牌分别放在3个盒子中有几种不同的方法。
步骤:首先走到1号盒子面前是先放1号牌还是2号牌还是3号牌?现在要生成的是全排列显然都要去尝试,现在规定一个顺序每次到了一个盒子的媔前,都先放1号再放2号,最后放3号
首先走到1号盒子面前,先放1号牌放到1号盒子中到2号盒子面前放2号牌,到3号盒子面前放3号牌假如還有一个盒子叫做4号盒子,其实不需要这个4号盒子因为放过3号盒子的3号牌,已经生成了一个排列
是不是结束了,肯定不是了拿你的腳指头想一下1,23这三个数字的全排列肯定不是一种。那我该怎么去想啊
策略:产生一种全排列之后需要立即返回,退回到3号盒子面前取回3好盒子中的扑克牌,再去尝试看看能不能放下其他号码的扑克牌这个不用想,你手里只有一张3号的牌肯定没有其他的牌了于是洅退回一步,回到2号盒子面前
取出2号盒子中的扑克牌现在手里已经有了两张牌分别是2号和3号扑克牌,需要往2号盒子中放3号扑克牌到3号盒子面前把手中的2号牌放进去,就又产生了一种排列“13,2”
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。