您的位置:首页 > 理论基础 > 数据结构算法

【数据结构与算法】关于排列组合

2017-01-05 19:59 323 查看
1、给出数字n,列出所有的排列组合的可能

【题目】:



【解法】: 用递归的方式



2、给出一个数组,列出所有可能的排列组合序列(不允许有重复)

【题目】:



【解法】:



3、给出数字n,k,返回所有排列组合序列中的第k个序列

【题目】:



【解法】:

【我自己的:出现了超时的错误】用了最简单的递归,超时了。实际上就是题目1的做法,只不过算到第k个就停止。



【参考另一种解法】

不使用递归,而是看k与排列组合序列的关系,总结规律,其实我一开始也希望这么做,但是总觉得要计算n的阶乘,然后就放弃了,但其实,对于这道题来说,n最大是9,所以可以一开始先把阶乘都算出来,存到数组里面,方便后面的调用。这里还有一个巧妙的地方,就是,提前把数字存到数组里面,用一个删除一个,这样方便找剩下数字里面的第n个数字。具体的代码为:



4、给出下一个全排列

【题目】



【解法】

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: