60. Permutation Sequence

·

1 min read

Problem Link

class Solution:
    def getPermutation(self, n: int, k: int) -> str:
        fact = [1] * (n+1)
        for i in range(2, n+1):
            fact[i] = fact[i-1] * i
        res = ''
        numGroups = n
        digits = '123456789'
        k -= 1
        for _ in range(n):
            d = k // fact[numGroups - 1]
            res += digits[d]
            digits = digits[:d] + digits[d+1:]
            k = k % fact[numGroups - 1]
            numGroups -= 1
        return res