LeetCode之Permutation Sequence
来源:互联网 发布:数据迁移工具有哪些 编辑:程序博客网 时间:2024/06/03 16:31
/*这道题的最直观想法是采用计数的方法,先确定第一个数字,同样不断地确定后面的数字即可。思路如下:1.排除第一个数后,其他n-1个数共有(n-1)!个排列;2.因此,所求排列的第一个数下标为(k-1)/((n-1)!); //下标从0开始,而k从1开始,所以为(k-1)3.删除确定的第一个元素,接下来求第(k-1)%((n-1)!)个排列。4.重复1~3,直到n个元素都已经确定。参考自:http://www.cnblogs.com/TenosDoIt/p/3721918.html*/class Solution {public: string getPermutation(int n, int k) { string str("123456789"); string s(str.substr(0, n)); string res(n, ' '); for(int i = 0; i < n; ++i){ res[i] = getNextChar(s, k); } return res; } char getNextChar(string& s, int& k){ int fac = factorial(s.size() - 1); int idx = (k-1) / fac; char res = s[idx]; k -= idx*fac; s.erase(idx, 1); return res; } int factorial(int n){ int res(1); for(int i = 2; i <= n; ++i){ res *= i; } return res; }};
0 0
- leetcode之Permutation Sequence
- leetcode 之 Permutation Sequence
- LeetCode之Permutation Sequence
- leetcode之Permutation Sequence
- 【Leetcode】之Permutation Sequence
- leetcode之Permutation Sequence解题思路
- LeetCode OJ 之 Permutation Sequence (排列组合)
- LeetCode第60题之Permutation Sequence
- LeetCode进阶之路(Permutation Sequence)
- 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
- IOS基本开发用到的
- 读ruby
- ios开发UI篇—Kvc简单介绍
- webdynpro for java的安装要点
- php中die()和exit()的区别
- LeetCode之Permutation Sequence
- u-boot 使用 jffs2 文件系统加载内核
- Pos()函数使用
- Thinking In Java学习笔记之文件读写实用工具
- stun turn ice等穿越NAT方法
- Python实现插入排序
- 53.Maximum Subarray
- android GridView android:stretchMode="columnWidth"
- ORA-22828 输入样式或替换参数超过了32k大小限制