Holy Shit这样一系列的题:我完全不知道怎么做,即便想采用BF的方法,无奈只能看答案,结果答案还看不懂,分类都不知道如何分类的这样一系列的题。
Permutation Sequence The set
[1,2,3,...,_n_]
contains a total of n! unique permutations. By listing and labeling all of the permutations in order, we get the following sequence for n = 3:
"123"
"132"
"213"
"231"
"312"
"321"
Given n and k, return the k permutation sequence.
Note:
- Given n will be between 1 and 9 inclusive.
- Given k will be between 1 and n! inclusive.
Example 1:
Input: n = 3, k = 3
Output: “213”
Example 2:
Input: n = 4, k = 9
Output: “2314”
class Solution {
public:
string getPermutation(int n, int k) {
int i, j, f=1;
string s(n,'0');
for(i = 1; i <= n; i++)
{
f *= i;
s[i - 1] += i;
}
for(i=0,k--; i < n; i++)
{
f /= n - i;
j = i + k/f;
char c=s[j];
for(;j>i;j--)
s[j]=s[j-1];
k%=f;
s[i]=c;
}
return s;
}
};