lintcode-medium-Permutation Sequence
2016-04-04 13:41
627 查看
Given n and k, return the k-th permutation sequence.
Notice
n will be between 1 and 9 inclusive.
Example
For
If
Challenge
O(n*k) in time complexity is easy, can you do it in O(n^2) or less?
Notice
n will be between 1 and 9 inclusive.
Example
For
n = 3, all permutations are listed as follows:
"123" "132" "213" "231" "312" "321"
If
k = 4, the fourth permutation is
"231"
Challenge
O(n*k) in time complexity is easy, can you do it in O(n^2) or less?
class Solution { /** * @param n: n * @param k: the kth permutation * @return: return the k-th permutation */ public String getPermutation(int n, int k) { if(n <= 0) return ""; StringBuilder result = new StringBuilder(); ArrayList<Integer> list = new ArrayList<Integer>(); for(int i = 1; i <= n; i++) list.add(i); k--; n--; while(n >= 0){ int index = k / factor(n); result.append(list.remove(index)); k -= index * factor(n); n--; } return result.toString(); } public int factor(int n){ int result = 1; for(int i = 1; i <= n; i++) result *= i; return result; } }
相关文章推荐
- 理解requirejs的几个重要点
- HDU 3726 Graph and Queries(treap)
- Android UI基础——SeekBar&RatingBar控件
- Java基础:StringBuffer与StringBuilder的区别
- 在普通类中获取request和session
- Building Telephony Systems With OpenSIPS---Introduction to SIP
- uedit的简单使用案例
- hdu 1711 Number Sequence
- POJ2479&&POJ2593 Maximum sum&&Max Sequence(最大连续和)
- iOS学习笔记03-UITableView
- iOS学习笔记02-UIScrollView
- 设计模式-builder
- Arduino101 中使用 Mirf 库的问题(2016-04-04)
- iPhone/iPad UI尺寸规范
- Builder
- firefox 扩展开发笔记(三):高级ui交互编程
- solution Of Pat 1099. Build A Binary Search Tree (30)
- IOS开发之UI布局
- [Elixir006]CSV(Comma-separated values)处理
- Textarea - 百度富文本编辑器插件UEditor