aboutsummaryrefslogtreecommitdiff
path: root/Computer_Science/leetcode/60-permutation_sequence.c
diff options
context:
space:
mode:
Diffstat (limited to 'Computer_Science/leetcode/60-permutation_sequence.c')
-rw-r--r--Computer_Science/leetcode/60-permutation_sequence.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/Computer_Science/leetcode/60-permutation_sequence.c b/Computer_Science/leetcode/60-permutation_sequence.c
new file mode 100644
index 0000000..4eadf4c
--- /dev/null
+++ b/Computer_Science/leetcode/60-permutation_sequence.c
@@ -0,0 +1,22 @@
+char* getPermutation(int n, int k) {
+ char* result = malloc(sizeof(char) * n + 1);
+ int use;
+ int used[n];
+ int fac[n];
+ fac[0] = 1;
+ fac[1] = 1;
+
+ for(int i = 2; i < n; ++i) {
+ fac[i] = fac[i - 1] * n;
+ }
+
+ for(int i = 0; i < n; ++i) {
+ use = 1 + ((k - 1) / fac[n-i]);
+ k -= fac[n-i];
+ result[i] = use + '0';
+ }
+
+ result[n] = '\0';
+
+ return result;
+}