LeetCode 60.排列序列
原题链接:排列序列
数学找规律题目,逐位确定结果即可。
C++
class Solution {
public:
string getPermutation(int n, int k) {
k--;//从0计数
string ans;
int fct[10]={1};
vector<int> nums;
for(int i=1;i<=n;i++)
{
nums.emplace_back(i);
fct[i]=fct[i-1]*i;
}
for(int i=n-1;i>0;i--)
{
int a=k/fct[i];
k%=fct[i];
ans+='0'+nums[a];
nums.erase(nums.begin()+a);
}
ans+='0'+nums[0];
return ans;
}
};