6/08/2014

114. Permutation Sequence

public class Solution {
    public String getPermutation(int n, int k) {
        int[] num = new int[n];
        int percount = 1;
       
        for (int i=0; i<n; i++) {
            num[i] = i+1;
            percount *= (i+1);
        }
       
        k--; //index is 0 based.
        StringBuilder sb = new StringBuilder();
       
        for (int i=0; i<n; i++) {
            percount /= (n-i);
            int index = k/percount;
            sb.append(num[index]);
           
            for (int j=index; j<n-i-1; j++) {
                num[j] = num[j+1];
            }
           
            k %= percount;
        }
       
        return sb.toString();
    }
}

没有评论:

发表评论