# LeetCode || Permutation Sequence

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):

1. "123"
2. "132"
3. "213"
4. "231"
5. "312"
6. "321"

Given n and k, return the kth permutation sequence.

Note: Given n will be between 1 and 9 inclusive.

a1, a2, a3, .....   ..., an

a2, a3, .... .... an, 共计n-1个元素。 n-1个元素共有(n-1)!组排列，那么这里就可以知道

a1 = K1 / (n-1)!   // 第一位的选择下标

K2 = K1 % (n-1)!
a2 = K2 / (n-2)!

。。。。。

K(n-1) = K(n-2) /2!
a(n-1) = K(n-1) / 1!

an = K(n-1)

class Solution {
public:
string getPermutation(int n, int k) {

string permSueq;
if(n>9)
return permSueq;
int factor=getFactorial(n);
vector<char> char_v;
for(int i=1;i<=n;++i)
{
char_v.push_back(getChar(i));
}
--k;//别忘了首先减一下，由于数组索引是从0开始的
while(n>0)
{
factor/=n;
int pos=(k/factor)%char_v.size();
vector<char>::iterator iter=char_v.begin()+pos;
permSueq.push_back(*iter);
char_v.erase(iter);//删除已经使用了的数字,这样不会影响下次循环
k%=factor;
--n;
}
return permSueq;
}
private:
//阶乘
int getFactorial(int n)
{
if(n==1||n==0)
return 1;
else
return n*getFactorial(n-1);
}

char getChar(int n)
{
switch(n)
{
case 1:
return '1';
case 2:
return '2';
case 3:
return '3';
case 4:
return '4';
case 5:
return '5';
case 6:
return '6';
case 7:
return '7';
case 8:
return '8';
case 9:
return '9';
default:
return 'a';
}
}
};

• 本文已收录于以下专栏：

## LeetCode 60. Permutation Sequence

1. 题目要求 The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeli...

## [LeetCode]60. Permutation Sequence

60. Permutation Sequence The set [1,2,3,…,n] contains a total of n! unique permutations. By listin...
• Johnkui
• 2016年04月15日 00:21
• 227

## LEETCODE60. Permutation Sequence

60. Permutation Sequence 内容如下： 已知正整数n的全排列按照字典序： 1 123 2 132 3 213 4 231 5 312 6 321 先给出n和k...

## leetcode[60]Permutation Sequence 以及 全排列的编码与解码——康托展开 (附完整代码)

leetcode[60]Permutation Sequence 以及 全排列的编码与解码——康托展开 (附完整代码)...

## LeetCode: Permutation Sequence [059]

【题目】 The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all ...

## [LeetCode]Permutation Sequence

Question The set [1,2,3,…,n] contains a total of n! unique permutations.By listing and labeling all...
• byamao1
• 2016年10月26日 17:19
• 102

## Leetcode刷题记—— 60. Permutation Sequence(排列序列)

举报原因： 您举报文章：LeetCode || Permutation Sequence 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)