Permutation Sequence
Thoughts
Code
class Solution {
public String getPermutation(int n, int k) {
int[] fac = new int[n + 1];
fac[0] = 1;
for (int i = 1; i <= n; i++) {
fac[i] = fac[i - 1] * i;
}
List<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= n; i++) {
numbers.add(i);
}
StringBuilder sb = new StringBuilder();
k--;
for (int i = 1; i <= n; i++) {
int index = k / fac[n - i];
sb.append(String.valueOf(numbers.get(index)));
k = k % fac[n - i];
numbers.remove(index);
}
return sb.toString();
}
}Analysis
Last updated