看到题的第一反应当然就是用next_permutation来做,本以为会卡这个函数时间,一次水过了。23333~~~
next_permutation这个函数在leetcode也有相关的题目让你写这个函数的实现方法。传送门:leetcode-31下一个排列
代码如下:
class Solution {
public:
string getPermutation(int n, int k) {
int a[12];
for(int i = 0;i<n;i++)
a[i] = i+1;
int x = 1;
while(next_permutation(a,a+n))
{
/*for(int i = 0;i<n;i++)
{
cout<<a[i];
}
cout<<endl;*/
if(x == k-2)
{
break;
}
x++;
}
if(k!=1)
{
next_permutation(a,a+n);
}
string X;
for(int i = 0;i<n;i++)
{
X.push_back(a[i]+'0');
}
return X;
}
};