LeetCode-Permutation SequencePermutation Sequence
2013-08-06 20:54
417 查看
class Solution { public: string getPermutation(int n, int k) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> A(n + 1); string ans; A[0] = 1; for (int i = 1; i < A.size(); ++i) { A[i] = i * A[i - 1]; } vector<int> B(n); for (int i = 0; i < B.size(); ++i) { B[i] = i + 1; } for (int i = n - 1; i >= 0; --i) { if (k == 1) { for (int j = 0; j < B.size(); ++j) { ans += B[j] + '0'; } break; } else { //根据k值计算当前应是哪个数 int tmp = (k - 1) / A[i]; vector<int>::iterator iter = B.begin() + tmp; ans += *iter + '0'; //去除已选出的数,并更新k B.erase(iter); k -= tmp * A[i]; } } return ans; } };
相关文章推荐
- LeetCode(60) Permutation Sequence
- #leetcode#Permutation Sequence
- leetcode 日经贴,Cpp code -Permutation Sequence
- leetcode之Permutation Sequence
- leetcode Permutation Sequence
- leetcode之Permutation Sequence
- leetcode Permutation Sequence
- LeetCode Permutation Sequence
- [leetcode]Permutation Sequence @ Python
- LeetCode(60) Permutation Sequence
- Leetcode Permutation Sequence
- Permutation Sequence [leetcode]
- LeetCode Permutation Sequence
- 【leetcode刷题笔记】Permutation Sequence
- LeetCode || Permutation Sequence
- LeetCode Permutation Sequence
- Permutation Sequence leetcode java
- leetcode:Permutation Sequence (顺序排列第k个序列) 【面试算法题】
- [leetcode 60] Permutation Sequence
- Permutation Sequence -- LeetCode