标签:字典序
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.
class Solution {
public:
string getPermutation(int n, int k) {
int data[10];
vector<bool> visited(10,0);
data[0]=1;
for(int i=1;i<=n;i++)
{
data[i]=data[i-1]*i;
}
string str(n,'0');
--k; //从0位开始算起,例如,从1开始算的第5个,也就是从0开始算的第四个
for(int i=n-1;i>=0;i--)
{
int temp_k=k/data[i];
int j=1;
for(;j<10;j++)
{
if(visited[j]==0)
temp_k--;
if(temp_k<0)
break;
}
visited[j]=1;
str[n-i-1]='0'+j;
k=k%data[i];
}
return str;
}
};
每日算法之四十二:Permutation Sequence (顺序排列第k个序列),布布扣,bubuko.com
每日算法之四十二:Permutation Sequence (顺序排列第k个序列)
标签:字典序
原文地址:http://blog.csdn.net/yapian8/article/details/38687729