标签:字典序
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.
class Solution { public: string getPermutation(int n, int k) { int data[10]; vector<bool> visited(10,0); data[0]=1; for(int i=1;i<=n;i++) { data[i]=data[i-1]*i; } string str(n,'0'); --k; //从0位开始算起,例如,从1开始算的第5个,也就是从0开始算的第四个 for(int i=n-1;i>=0;i--) { int temp_k=k/data[i]; int j=1; for(;j<10;j++) { if(visited[j]==0) temp_k--; if(temp_k<0) break; } visited[j]=1; str[n-i-1]='0'+j; k=k%data[i]; } return str; } };
每日算法之四十二:Permutation Sequence (顺序排列第k个序列),布布扣,bubuko.com
每日算法之四十二:Permutation Sequence (顺序排列第k个序列)
标签:字典序
原文地址:http://blog.csdn.net/yapian8/article/details/38687729