分析
设置当前是第几个,如果到达第k个则结束循环。
class Solution {
public:
int path[10];
bool st[10];
string s="";
int cur=0;
void dfs(int n,int u,int k){
if(n==u){
if(++cur==k){
for(int i=0;i<n;i++)
s+=path[i]+'0';
return ;
}
return ;
}
for(int i=1;i<=n;i++){
if(!st[i]){
st[i]=true;
path[u]=i;
dfs(n,u+1,k);
st[i]=false;
}
}
}
string getPermutation(int n, int k) {
dfs(n,0,k);
return s;
}
};