LeetCode Permutation Sequence
来源:互联网 发布:新大教育网络管理系统 编辑:程序博客网 时间:2024/06/03 13:01
题目
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.
输出从1~n的n个数组成的排列中第K小的。
注意到第i位(从1开始计数)的数字增加1,排列序号增加(n-1)!,可以由此从高位开始依次确定每位的数字。
每次已经被选的数字需要在低位的筛选过程中剔除。
代码:
class Solution {public: string getPermutation(int n, int k) { string ans;if(n<=0)return ans;int num[9]={1},flag[9]={0};//第i位(从0开始)后面i个数字的排列数,数字i+1是否已经取过num[1]=1;int i,j,id,count;for(i=1;i<9;i++)//获取第i位(从0开始)后面i个数字的排列数的查找表num[i]=num[i-1]*i;for(i=n-1;i>=0;i--)//从头开始确定每位的数字{id=(k-1)/num[i]+1;//确定该位是没取数字中的从小开始的第几个数字count=0;for(j=0;j<n;j++)//寻找该数字{if(flag[j]==0){count++;if(count==id){ans.push_back('1'+j);flag[j]=1;break;}}}k-=(id-1)*num[i];//修改序号,适应下一位}return ans; }};
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
- android:两个应用之间如何传值之activity
- 夜袭庞龙鸟
- Ubuntu 查看和杀死进程
- jsp显示当前日期
- C++<algorithm>中sort的比较函数写法
- LeetCode Permutation Sequence
- ios 翻牌效果
- java中的匿名内部类总结
- Android开发环境搭建及HelloWorld
- c语言中关于可变参数的一个用法实例
- java HttpClient get post请求 调用接口
- 创新实验室实习生每周工作总结【实习第十五周】
- 基于样本一致性的背景减除运动目标检测算法(SACON)
- 【安卓】数据库基于脚本的"增量更新",每次更新时不需修改java代码、!