60. Permutation Sequence

public class Solution { public String getPermutation(int n, int k) { if(k>jiecheng(n) ||n<=0) return ""; boolean []visited=new boolean[n+1]; int i=1; String res=""; while(i<=n) { int temp=(k-1)/jiecheng(n-i)+1; //当前的第几个数 int count=0; for(int j=1;j<=n;j++) { if(!visited[j]) { count++; } if(count==temp) //未被访问过的第几个数 { visited[j]=true; res+=String.valueOf(j); break; } } k=(k-1)%jiecheng(n-i)+1; i++; } return res; } public int jiecheng(int n) { if(n==0) return 1; //0的阶乘等于1. int res=1; while(n>0) { res*=n; n--; } return res; }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值