aboutsummaryrefslogtreecommitdiff
path: root/Computer_Science/leetcode/60-permutation_sequence.c
diff options
context:
space:
mode:
authorSteve Lee <me@xiangyangli.com>2017-12-26 01:33:40 +0800
committerSteve Lee <me@xiangyangli.com>2017-12-26 01:33:40 +0800
commit79a9c52fa923fc78074d88463449a8b7f95ca3ef (patch)
tree80c2b596a7c41124845771dca99abd364e89d4c4 /Computer_Science/leetcode/60-permutation_sequence.c
parent2e0e0f39d49296f0ffb99aea533a527174521d61 (diff)
download42-79a9c52fa923fc78074d88463449a8b7f95ca3ef.tar.xz
42-79a9c52fa923fc78074d88463449a8b7f95ca3ef.zip
update leetcode solution
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;
+}