標籤:style color io os ar for sp on amp
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 (ie, for n = 3):
"123"
"132"
"213"
"231"
"312"
"321"
Given n and k, return the kth permutation sequence.
Note: Given n will be between 1 and 9 inclusive.
#if 0class Solution {public: std::string getPermutation(int n, int k) {std::string s;for (int i = 0; i < n; i++){s.push_back(i+1+'0');}int cnt = 0;do{cnt++;} while (std::next_permutation(s.begin(),s.end()) && cnt < k);#if 0std::cout << s << std::endl;#endif // 1return s; }};#endif // The code TLE. (一般解法)#if 1class Solution {public: std::string getPermutation(int n, int k) {std::vector<int> vec(n,0);int t = 1;for (int i = 0; i < n; i++){vec[i] = i + 1;t *= i + 1;}std::string s;k--;for (int i = 0; i < n; i++){t /= n - i;s.push_back(vec[k / t] + '0');vec.erase(vec.begin() + k / t);k %= t;}#if 0std::cout << s << std::endl;#endif // 1return s; }};#endif // 1
leetcode - Permutation Sequence