Paste_Image.png
class Solution(object):
"""
:type n: int
:type k: int
:rtype: str
"""
def getPermutation(self, n, k):
jc = [1]#存放階乘的數(shù)組
num = [] #存放序列1,2,3,4
for i in range(2,n):
jc.append(jc[-1]*i)
for i in range(n):
num.append(i+1)
result = "" #返回的字符串
#循環(huán)判斷第i個值的位置
for i in range(n-1):
if k == 0 or k == 1:
break
#當(dāng)前所在區(qū)間
s = int(k/jc[n-i-2])
if k%jc[n-i-2] > 0:
s+=1
#m放在第一個位置的下標(biāo)
m = s - 1
#新k,
k -= jc[n-i-2] * (s-1)
#調(diào)整位置
temp = num[m+i]
while m > 0:
num[m+i] = num[m+i-1]
m -= 1
num[i] = temp
result = ""
for i in range(len(num)):
result += str(num[i])
return result
s = Solution()
s.getPermutation(3,6)