难度:困难
题目:
给出集合 [1,2,3,...,n]
,其所有元素共有 n!
种排列。
按大小顺序列出所有排列情况,并一一标记,当 n = 3
时, 所有排列如下:
"123"
"132"
"213"
"231"
"312"
"321"
给定 n
和 k
,返回第 k
个排列。
示例 1:
输入:n = 3, k = 3 输出:"213"
示例 2:
输入:n = 4, k = 9 输出:"2314"
示例 3:
输入:n = 3, k = 1 输出:"123"
提示:
1 <= n <= 9
1 <= k <= n!
Python源码:
class Solution:
def getPermutation(self, n: int, k: int) -> str:
s = ''
for i in range(1, n+1):
s += str(i)
import itertools
sorted_list = list(itertools.permutations(s))
l = len(sorted_list[0])
flag = ''
for i in range(l):
flag += sorted_list[k-1][i]
return flag