0060.排列序列

方法一:模拟

时间复杂度 $O(n^2)$,空间复杂度 $O(n)$。

func getPermutation(n int, k int) string {
	ans, visable := "", make([]bool, n+1)
	for i := 0; i < n; i++ {
		factor := 1
		for j := 1; j < n-i; j++ {
			factor *= j
		}
		for j := 1; j <= n; j++ {
			if !visable[j] {
				if k > factor {
					k -= factor
				} else {
					ans += fmt.Sprintf("%c", '0'+j)
					visable[j] = true
					break
				}
			}
		}
	}
	return ans
}