60 Permutation Sequence
Last updated
Last updated
class Solution {
public String getPermutation(int n, int k) {
if (n <= 0 || k <= 0) {
return "";
}
StringBuilder res = new StringBuilder();
StringBuilder nums = new StringBuilder();
for (int i = 1; i <= n; i++) {
nums.append(i);
}
--k;
int[] factorial = new int[n + 1];
factorial[0] = 1;
for (int i = 1; i <= n; i++) {
factorial[i] = factorial[i - 1] * i;
}
for (int i = 1; i <= n; i++) {
int index = k / factorial[n - i];
res.append(nums.charAt(index));
nums.deleteCharAt(index);
k -= index * factorial[n - i];
}
return res.toString();
}
}