`
hcx2013
  • 浏览: 83377 次
社区版块
存档分类
最新评论

Permutation Sequence

 
阅读更多

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):

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

 

Given n and k, return the kth permutation sequence.

 

public class Solution {
    public String getPermutation(int n, int k) {
    	int t = 1;;
    	List<Integer> list = new ArrayList<Integer>();
    	for (int i = 1; i <= n; i++) {
    		t *= i;
    		list.add(i);
    	}
    	k--;
    	StringBuilder sb = new StringBuilder();
    	for (int i = n; i >= 1; i--) {
    		t = t/i;
    		int index = k/t;
    		sb.append(list.get(index));
    		list.remove(index);
    		k = k % t;
    	}
    	return sb.toString();
    }
}

 

10
12
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics