LeetCode(60) Permutation Sequence
来源:互联网 发布:人工智能权威期刊 编辑:程序博客网 时间:2024/05/01 23:24
减一法
class Solution {public: int factorial(int n) { int result = 1; int i = 1; while(i <= n) result = result * (i++); return result; } void minusOneAndConquer(vector<int> &nums, int k, string &result) { if(1 == nums.size()) { result += std::to_string(nums[0]); return; } int step = factorial(nums.size() - 1); int i = 1; while(true) { if(k >= (i - 1) * step + 1 && k <= i * step) break; i++; } result += std::to_string(nums[i - 1]); nums.erase(nums.begin() + i - 1); minusOneAndConquer(nums, k - (i - 1) * step, result); } string getPermutation(int n, int k) { string result; vector<int> nums; for(int i = 1; i <= n; i++) nums.push_back(i); minusOneAndConquer(nums, k, result); return result; }};
0 0
- LeetCode 60: Permutation Sequence
- [leetcode 60] Permutation Sequence
- leetcode || 60、Permutation Sequence
- leetcode 60:Permutation Sequence
- LeetCode(60) Permutation Sequence
- Leetcode #60 Permutation Sequence
- leetcode 60: Permutation Sequence
- Leetcode#60||Permutation Sequence
- [Leetcode]#60 Permutation Sequence
- leetcode 60:Permutation Sequence
- 【leetcode】【60】Permutation Sequence
- LeetCode 60 - Permutation Sequence
- LeetCode 60: Permutation Sequence
- LeetCode 60 Permutation Sequence
- 【Leetcode】Permutation Sequence(60)
- Leetcode 60 Permutation Sequence
- leetcode-60-Permutation Sequence
- Leetcode 60 Permutation Sequence
- memorization DEMO
- ACE在Linux环境下的编译安装
- bzoj1001【BeiJing2006】狼抓兔子
- 冒泡排序算法笔记
- C++ 异常处理流程
- LeetCode(60) Permutation Sequence
- 为什么要重写hashcode() 方法
- zoj2405
- hdu 杭电2074 叠筐
- Burnside引理与Polya定理
- 编译时和运行时的关系
- 深入剖析Android四大组件(二)——Service服务之启动与绑定
- Leetcode:Add Two Sum
- Gson与FastJson解析性能分析