Permutation Sequence (略)
2015-09-20 00:01
323 查看
The set
unique permutations.
By listing and labeling all of the permutations in order,
We get the following sequence (ie, for n = 3):
Given n and k, return the kth permutation sequence.
详细解释:
https://leetcode.com/discuss/42700/explain-like-im-five-java-solution-in-o-n
[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):
"123"
"132"
"213"
"231"
"312"
"321"
Given n and k, return the kth permutation sequence.
public String getPermutation(int n, int k) { int pos = 0; List<Integer> numbers = new ArrayList<>(); int[] factorial = new int[n+1]; StringBuilder sb = new StringBuilder(); // create an array of factorial lookup int sum = 1; factorial[0] = 1; for(int i=1; i<=n; i++){ sum *= i; factorial[i] = sum; } // factorial[] = {1, 1, 2, 6, 24, ... n!} // create a list of numbers to get indices for(int i=1; i<=n; i++){ numbers.add(i); } // numbers = {1, 2, 3, 4} k--; for(int i = 1; i <= n; i++){ int index = k/factorial[n-i]; sb.append(String.valueOf(numbers.get(index))); numbers.remove(index); k-=index*factorial[n-i]; } return String.valueOf(sb); }
详细解释:
https://leetcode.com/discuss/42700/explain-like-im-five-java-solution-in-o-n
相关文章推荐
- QuickCalc | 快计算
- CryptoGUI | 文件加解密
- UGUI 锚点坑
- ios(总结)UISearchBar
- 点击UICollectionViewCell上的UIButton如何获取当前的UICollectionViewCell?
- 【Xamarin 开发 IOS --使用 Storyboard Segue 实作 UIViewController 的切换 (实例)】
- 【Xamarin 开发 IOS --IOS 页面导航概念Segue】
- que0que.cc:: Short introduction to query graphs
- java GUI--day22
- Guide to installing 3rd party JARs
- 条款37:绝不重新定义继承而来的缺省参数值(Never redefine a function's inherited default parameter value)
- 使用存取方法来设置Property value
- iOS ui设计的乐土
- 初试jQuey
- UI控件——UISlider:滑动条
- iOS UIAlertController 弹框 (ios 9.0 后代替了UIAlertView弹框 和 UIActionSheet下弹框)
- easyui datagrid学习笔记
- UIButton超出UIView边界不可点击,应该怎么办?
- hdu 1503 Advanced Fruits(最长公共子序列的应用)
- 如何让UIImageView具有像UIButton一样的点击效果