首页 > 代码库 > leetcode. Permutation Sequence
leetcode. Permutation Sequence
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.
1 string getPermutation(int n, int k) 2 { 3 string s; 4 if (k <= 0 || n <= 0) 5 return s; 6 7 int *array = new int[n], *fact = new int[n + 1], select, i, j; 8 fact[0] = 1; 9 for (i = 0; i < n; i++)10 { 11 array[i] = ‘1‘ + i;12 fact[i + 1] = fact[i] * (i + 1);13 }14 15 for (i = 0; i < n; i++)16 {17 select = (k - 1) / fact[n - i - 1];18 k = k - select * fact[n - i - 1];19 s += array[select];20 for (j = select; j < n - 1; j++)21 array[j] = array[j + 1];22 }23 24 delete[] array;25 return s;26 }
leetcode. Permutation Sequence
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。