package com.interview.algorithms.general; /** * Created_By: stefanie * Date: 14-11-6 * Time: 上午7:52 */ public class C1_73C_PermutationSequence { public static String permutation(int n, int k){ if(n > 9 || k <= 0) return ""; if(n == 1) return "1"; int[] factors = new int[n + 1]; factors[0] = 1; for(int i = 1; i <= n; i++) factors[i] = factors[i - 1] * i; k = k - 1; k = k % factors[n]; StringBuilder nums = new StringBuilder("123456789"); StringBuilder permutation = new StringBuilder(); for(int i = n - 1; i >= 0; i--){ int curNum = k / factors[i]; permutation.append(nums.charAt(curNum)); nums.deleteCharAt(curNum); k = k - curNum * factors[i]; } return permutation.toString(); } }