本题源自LeetCode
------------------------------------------------------------------------
思路1:
回溯法 会超时
string getPermutation(int n, int k) {
vector<string> dp;
string tmp;
backPath(dp,tmp,n,n,k);
string result=dp[dp.size()-1];
return result;
}
void backPath(vector<string> &result,string tmp,int n,int len,int k){
if(result.size()==k){
return ;
}
if(len==0)
result.push_back(tmp);
for(int i=1;i<=n;i++){
if(tmp.find(i+'0')!=string::npos)
continue;
tmp+=i+'0';
backPath(result,tmp,n,len-1,k);
tmp.erase(tmp.end()-1);
}
}
思路 2 找规律: