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 for n = 3:
"123"
"132"
"213"
"231"
"312"
"321"
Given n and k, return the kth permutation sequence.
Note:
- Given n will be between 1 and 9 inclusive.
- Given k will be between 1 and n! inclusive.
Example 1:
Input: n = 3, k = 3 Output: "213"Example 2:
Input: n = 4, k = 9 Output: "2314"
Success
Runtime: 1 ms, faster than 99.96% of Java online submissions for Permutation Sequence.
Memory Usage: 34.6 MB, less than 100.00% of Java online submissions for Permutation Sequence.
class Solution {
public String getPermutation(int n, int k) {
int index=1;
ArrayList rest=new ArrayList();
for(int i=1;i<n;i++){
index*=i;
rest.add(i);
}
int scale=n-1;
rest.add(n);
String ss="";
k--;
while(scale>0){
int temp=(int)rest.get(k/index);
//System.out.println(temp);
ss+=Integer.toString(temp);
rest.remove(k/index);
k=k%index;
index=index/scale;
scale--;
}
ss+=Integer.toString((int)rest.get(0));
return ss;
}
}