60. Permutation Sequence
https://leetcode.com/problems/permutation-sequence/discuss/22508/An-iterative-solution-for-reference
1 class Solution { 2 List<String> res = new ArrayList<>(); 3 public String getPermutation(int n, int k) { 4 List<Integer> nums = new ArrayList<>(); 5 for(int i = 1; i <= n; i++) { 6 nums.add(i); 7 } 8 int[] fac = new int[n]; 9 fac[0] = 1; 10 for(int i = 1; i < n; i++) { 11 fac[i] = i * fac[i-1]; 12 } 13 StringBuilder res = new StringBuilder(); 14 k--; //重要 因为其他的index都是从0开始 因为k--比较好 15 for(int i = n-1; i >= 0; i--) { 16 int index = k / fac[i]; 17 k = k % fac[i]; 18 res.append(nums.get(index)); 19 nums.remove(index); 20 } 21 return res.toString(); 22 23 } 24 }