Leetcode: Permutation Sequence
来源:互联网 发布:淘宝宝贝排名工具 编辑:程序博客网 时间:2024/06/06 14:19
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.
class Solution {public: string getPermutation(int n, int k) { vector<int> table(n-1, 0); vector<int> nums(n, 0); string ret; int i, c; if (n == 1) return "1"; table[n-2] = 1; for (i = n-3; i >= 0; i--) { table[i] = table[i+1] * (n-1-i); } i = 1; while(i < n) { c = (k-1) / table[i-1]; k -= c * table[i-1]; c = pickNumber(nums, c+1); ret.append(1, '0'+c); ++i; if (k == 0) break; } for (i = 0; i < n; i++) { if (nums[i] == 0) { ret.append(1, '0'+i+1); } } return ret; }private: int pickNumber(vector<int> &nums, int n) { int i = 0; int k = 0; while (i < nums.size()) { if (nums[i] == 0) { ++k; if (k == n) { nums[i] = 1; return i+1; } } ++i; } return nums.size()-1; }};
0 0
- LeetCode: Permutation Sequence
- LeetCode Permutation Sequence
- [Leetcode] Permutation Sequence
- [LeetCode] Permutation Sequence
- leetcode 74: Permutation Sequence
- leetcode Permutation Sequence
- [leetcode] Permutation Sequence
- [LeetCode]Permutation Sequence
- LeetCode:Permutation Sequence
- LeetCode-Permutation SequencePermutation Sequence
- [leetcode] Permutation Sequence
- LeetCode - Permutation Sequence
- LeetCode:Permutation Sequence
- LeetCode 60: Permutation Sequence
- Leetcode: Permutation Sequence
- leetcode Permutation Sequence
- LeetCode | Permutation Sequence
- LeetCode Permutation Sequence
- 一颗排序二叉树,令f=(最大值+最小值)/2,找出距离f值最近、大于f值的结点
- Fritzing 元件绘制
- jquery 动态效果方法总结
- apache tomcat 负载均衡
- 3D Zernike矩计算函数 - MATLAB
- Leetcode: Permutation Sequence
- 活着,就该学会珍惜
- GDI+学习笔记(五)绘制一个正方体
- ASP.NET—011:JavaScript报错常见问题
- iOS开发-文件管理(一)
- 【PIC32学习笔记】PIC32中的I/O端口的PORTx和LATx的区别
- windows2008R2安装Xampp v1.8.3,提示403错误
- C++ union与Delphi record 转化
- katta安装遇到的一些问题