字典序排列
文章平均质量分 69
wnjason
这个作者很懒,什么都没留下…
展开
-
ACM POJ 1146 ID Codes
题目大意:输入一个字符串,输出它的下一个字典序排列。 字典序算法思想: 1.从右向左寻找字符串找出第一个a[i] 2.从右向左找出第一个大于a[j]的元素a[i]; 3.swap(a[i],a[j]) 4.将a[i]......到a[stelen(a)]倒序 5.输出a 代码如下: #include #include #include #include #include usin原创 2014-09-30 20:40:40 · 883 阅读 · 0 评论 -
LeetCode---Permutations
题目大意:给出一个数组,求出数组中元素的所有排列。 算法思想: 1.首先将数组升序排序,并将结果放入集合中。 2.然后利用STL中的next_permutation()算法求出数组中元素的所有排列。 代码如下: class Solution { public: vector> permute(vector& nums) { vector >res;原创 2015-11-16 19:30:49 · 288 阅读 · 0 评论 -
LeetCode---Permutations II
题目大意:给出一个包含重复元素的数组,找出该数组所有可能的唯一排列。 算法思想:字典序法。 1.对数组排序,将初始序列放入结果中。 2.找出p=max{i|a[i] 3.找出q=max{j|a[j]>a[p]} 4.swap(a[p],a[q]) 5.将a[p+1]之后的元素倒序。 6将生成的结果保存起来。 7.重复2~6. 代码如下: class Solution { pub原创 2015-12-15 10:37:30 · 288 阅读 · 0 评论 -
LeetCode---Permutation Sequence
题目大意:给出两个数n和k,求出有字符序列1...n组成的序列的第K个排列。1= 算法思想: 此题用常规的做法容易超时如字典序法或递归方法。因此根据全排列的性质,3个元素组成的序列有6中排列,4个元素组成的序列有24中排列。。。。当要得到第K个元素时先找到他的开头元素,p=(k-1)/(n-1)!,则由其组成该排列的首元素,后面的操作一次类推。 思想细化为: 1.计算pTable[n]用于原创 2016-08-31 17:09:19 · 348 阅读 · 0 评论