题目描述:
给出集合 [1,2,3,…,n]
,其所有元素共有 n! 种排列。
按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:
"123"
"132"
"213"
"231"
"312"
"321"
给定 n 和 k,返回第 k 个排列。
说明:
- 给定 n 的范围是 [1, 9]。
- 给定 k 的范围是[1, n!]。
示例 1:
输入: n = 3, k = 3
输出: "213"
代码说明:
/*
在此题中,首先明确输出的排列方式必须是一个字符串,所以最后得出的每一位数,都要采取
适当的方法转换为字符形式。
*/
class Solution {
public:
int func(int n) //计算n个数的排列方式
{
if (n == 0) return 1;
else return n * func(n - 1);
}
string