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.
void visit(int n, int k, int pos, int &count, bool flag[], int result[]){ if (count == k) { return; } if (pos == n) { count++; if (count == k) { for (int i = 0; i < n; i++) { cout << result[i]; } cout << endl; } return; } for (int i = 0; i < n; i++) { if (flag[i]) { result[pos] = i+1; flag[i] = false; visit(n, k, pos+1, count, flag, result); flag[i] = true; } }}void fun(int n, int k){ bool flag[n]; memset(flag, true, sizeof(flag)); int result[n]; int count = 0; visit(n, k, 0, count, flag, result);}
新闻热点
疑难解答