找到全排列中的第k個序列
The set [1,2,3,...,n] contains a total of n! unique permutations.html
By listing and labeling all of the permutations in order, we get the following sequence for n = 3:.net
"123" "132" "213" "231" "312" "321"
Given n and k, return the kth permutation sequence.
Note:code
Given n will be between 1 and 9 inclusive. Given k will be between 1 and n! inclusive.
Example:htm
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) { string res; string num = "123456789"; vector<int> f(n, 1); for (int i = 1; i < n; ++i) f[i] = f[i - 1]*i; --k; for (int i = n; i >= 1; --i) { int j = k / f[i - 1]; k %= f[i - 1]; res.push_back(num[j]); num.erase(j, 1); } return res; } };
https://blog.csdn.net/u010472607/article/details/80431604 【erase】blog