给定 n 和 k,求123..n
组成的排列中的第 k 个排列。
样例
对于 n = 3
, 所有的排列如下:
123
132
213
231
312
321
如果 k = 4
, 第4个排列为,231
.
注意
1 ≤ n ≤ 9
class Solution {
public:
bool nextPermutation(vector<int> &vec){
int n=vec.size();
for(int i=n-1;i>=0;--i)
for(int j=n-1;j>i;--j){
if(vec[j]>vec[i]){
swap(vec[i],vec[j]);
sort(vec.begin()+i+1,vec.end());
return true;
}
}
sort(vec.begin(),vec.end());
return false;
}
string getPermutation(int n, int k) {
vector<int> vec;
for(int i=1;i<=n;++i)
vec.push_back(i);
while(k-->1){
nextPermutation(vec);
}
string s;
for(auto e:vec)
s+=e+'0';
return s;
}
};