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.
Note: Given n will be between 1 and 9 inclusive.
1 public class Solution { 2 public String getPermutation(int n, int k) { 3 // Start typing your Java solution below 4 // DO NOT write main() function 5 int[] num = new int[n]; 6 int count = 1; 7 for(int i = 0; i < n; i++){ 8 num[i] = i + 1; 9 count *= (i+1); 10 } 11 k--; 12 StringBuilder sb = new StringBuilder(); 13 for(int i = 0; i < n; i++){ 14 count /= n - i; 15 int selected = k / count; 16 k = k % count; 17 //count = count / (n - i - 1); 18 19 sb.append(num[selected]); 20 for(int j = selected + 1; j < n; j++){ 21 num[j - 1] = num[j]; 22 } 23 } 24 return sb.toString(); 25 } 26 }