标签: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 0 class 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 0 std::cout << s << std::endl; #endif // 1 return s; } }; #endif // The code TLE. (一般解法) #if 1 class 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 0 std::cout << s << std::endl; #endif // 1 return s; } }; #endif // 1
leetcode - Permutation Sequence
标签:style color io os ar for sp on amp
原文地址:http://blog.csdn.net/akibatakuya/article/details/40111663