Permutation Sequence算法详解
来源:互联网 发布:淘宝一元购 编辑:程序博客网 时间:2024/05/14 11:21
算法题目:The set [1,2,3,…,n] contains a total of n! unique permutations.
By listing and labeling all of the permutations in order,
We get the following sequence (ie, for n = 3):
“123”
“132”
“213”
“231”
“312”
“321”
Given n and k, return the kth permutation sequence.
Note: Given n will be between 1 and 9 inclusive.
题意:给定1……n数字集合,有n!种排列,排列按小到大排,找到第k个排列字符串,n>=1&&n<=9
思路:先初始化字符串“1……n”,然后从0位开始逐步确定每一位的数字,第i位后面的数字有(n-1-i)!种排法,若假设k<(n-1-i)!,则可确定第i位的数字。
string getPermutation(int n, int k) { int KN=1; string ret(n,'1'); for(int i=2;i<=n;i++) { KN*=i; ret[i-1]=i+'0'; } int temp=n; for(int i=0;i<ret.size();i++) { KN/=temp; for(int j=i+1;j<n&&k>KN;j++) { swap(ret[i],ret[j]); k-=KN; if(k==1)break; } temp--; } return ret; }
0 0
- Permutation Sequence算法详解
- 算法<Permutation Sequence>
- Leetcode算法学习日志-60 Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- c++处理矩阵操作:Eigen库初步学习使用
- IOS 开发学习37 的Architecture与iphone版本对应关系
- php中getenv()和$_SERVER的区别
- java基础--面向对象
- Fragment hide,show方法后,会调用什么方法
- Permutation Sequence算法详解
- SQLSERVER2008R2之SQL查询语句
- HTTP 499 状态码 nginx下 499错误
- Java swing 实现字体滚动
- socket.io用法与实例
- 让Mac启动的时候自动启动mysql
- BZOJ1030 [JSOI2007]文本生成器(AC自动机+dp)
- 解析STM32的启动过程
- SQL_存储过程CET递归查询获得树的叶子节点