leetcode Permutation Sequence
来源:互联网 发布:网络利大于弊的提问词 编辑:程序博客网 时间:2024/05/01 05:34
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):
"123"
"132"
"213"
"231"
"312"
"321"
Given n and k, return the kth permutation sequence.
Note: Given n will be between 1 and 9 inclusive
So the most straightforward way is to generate the number one by one. just traverse from tail and get the first smaller element. then swap and sort, you'll get the answer.
however, for large n and k, it will be very slow. so the insight here is that if p = k / (n-1)!, then the first element is arr[p]
public class Solution { public String getPermutation(int n, int k) { // Start typing your Java solution below // DO NOT write main() function char b[]=new char[n]; for(int i=0;i<n;i++) b[i]=(char)('0'+i+1);//first initialize 12345... return new String(mutation(b,n,k)); } public char[] mutation(char b[],int n, int k) { if(k==1) return b; int t=1,h=1; while(k>h&&t<n){ t++; h*=t; } h/=t; t--; int m=(k-1)/h; char a=b[n-t-1]; b[n-t-1]=b[n-t-1+m];//get the first element and swap with the corresponding element for(int i=n-t-1+m;i>n-t;i--) b[i]=b[i-1];//shift b[n-t]=a; return mutation(b,n,k-m*h); }}
- LeetCode: Permutation Sequence
- LeetCode Permutation Sequence
- [Leetcode] Permutation Sequence
- [LeetCode] Permutation Sequence
- leetcode 74: Permutation Sequence
- leetcode Permutation Sequence
- [leetcode] Permutation Sequence
- [LeetCode]Permutation Sequence
- LeetCode:Permutation Sequence
- LeetCode-Permutation SequencePermutation Sequence
- [leetcode] Permutation Sequence
- LeetCode - Permutation Sequence
- LeetCode:Permutation Sequence
- LeetCode 60: Permutation Sequence
- Leetcode: Permutation Sequence
- leetcode Permutation Sequence
- LeetCode | Permutation Sequence
- LeetCode Permutation Sequence
- icon 图标 高光
- 疯狂Java面试题大全(Android版)
- 一条SQL查询某张表时间转换格式后保存另外一张表
- Android中的沙箱模型
- JavaScript随笔
- leetcode Permutation Sequence
- PHP判断是否是AJAX请求
- magento addattributetoselect使用
- 书法作品总结
- android电话拔打
- @XmlAccessorType详解
- jquery cookie的用法
- 无法与该代理取得联系。请验证此代理的 url 是否为 null
- Linux中JDK1.6的安装和配置方法