The set?[1,2,3,…,n]?contains a total of?n! unique permutations.
By listing and labeling all of the permutations in order,
We get the following sequence (ie, for?n?= 3):
"123""132""213""231""312""321"?
Given?n?and?k, return the?kth?permutation sequence.
?
public class Solution {
public String getPermutation(int n, int k) {
int t = 1;;
List<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= n; i++) {
t *= i;
list.add(i);
}
k--;
StringBuilder sb = new StringBuilder();
for (int i = n; i >= 1; i--) {
t = t/i;
int index = k/t;
sb.append(list.get(index));
list.remove(index);
k = k % t;
}
return sb.toString();
}
}
?
原文:http://hcx2013.iteye.com/blog/2221287