classSolution { public String getPermutation(int n, int k) { int[] factorial = newint[n]; factorial[0] = 1; // 0 的阶乘为 1 for (inti=1; i < factorial.length; i++) { factorial[i] = i * factorial[i - 1]; }
List<Integer> numList = newLinkedList<>(); for (inti=1; i <= n; i++) { numList.add(i); }
StringBuildersb=newStringBuilder(); for (inti= n - 1; i >= 0; i--) { intindex= k / factorial[i]; if (k % factorial[i] == 0) { // 能够整除 index--; } sb.append(numList.remove(index)); k -= index * factorial[i]; }