# missjing/leetcode

Switch branches/tags
Nothing to show
Fetching contributors…
Cannot retrieve contributors at this time
50 lines (43 sloc) 1 KB
 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 permute(int n, int k, int idx, int &count, string &solution, string &res, vector &isVisited) { if(idx == n) { count++; if(count == k) res.assign(solution); return; } for(int i = 0; i < n; i++) { if(!isVisited[i]) { isVisited[i] = true; solution.append(1, i + '1'); permute(n, k, idx + 1, count, solution, res, isVisited); isVisited[i] = false; solution.assign(solution.substr(0, solution.size() - 1)); } } } string getPermutation(int n, int k) { if(n == 0) return "0"; string solution, res; vector isVisited(n, false); int count = 0; permute(n, k, 0, count, solution, res, isVisited); return res; }