Leetcode 60 Permutation Sequence
來源:程序員人生 發布時間:2016-09-30 11:06:45 閱讀次數:2796次
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⑴)!個排列,應用這個特點反復減k,讓k去逼近1。
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⑴]*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;
}
};
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈