对于第一个数字,剩余共有(n-1)!中排列,因此第一个数字为k/(n-1)!,之后的数字依次类推
import math
class Solution(object):
def getPermutation(self, n, k):
"""
:type n: int
:type k: int
:rtype: str
"""
numbers = range(1, n+1)
res = ''
k -= 1
while n > 0:
n -= 1
num, k = divmod(k, math.factorial(n))
res += str(numbers[num])
numbers.remove(numbers[num])
return res