这道题想到了规律就不算难,列了好几个示例想出的规律,试着排序几个就会了
class Solution {
public:
string getPermutation(int n, int k) {
string result;
int m=1;
int i=1;
for(i;i<=n;i++) m*=i;
i--;
int p=m/i;
string s;
for(int j=0;j<n;j++) s.append(to_string(j+1));
while(result.size()!=n){
for(int j=1;j*p<=m;j++){
if(j*p>=k){
result.push_back(s[j-1]);
s.erase(s.begin()+j-1);
k-=(j-1)*p;
break;
}
}
m=p;
i--;
if(i==0) break;
p/=i;
}
return result;
}
};