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.
输出长度为n的数字串字典序的第K个串。
每一位定下来以后,后面共有(n-1)!个排列,运用这个特点反复减k,让k去逼近1。
代码语言:javascript复制class Solution {
public:
string getPermutation(int n, int k) {
int mp[10];
mp[0]=mp[1]=1;
vector<int> v(1,1);
for(int i=2;i<10;i )
{
mp[i]=mp[i-1]*i;
v.push_back(i);
}
string result;
while(n--)
{
vector<int>::iterator it=v.begin();
while(k>mp[n])
{
k-=mp[n];
it ;
}
result =('0' *it);
v.erase(it);
}
return result;
}
};