Skip to content

Commit 28b2ead

Browse files
authored
Update 60-permutation-sequence.js
1 parent 888fc68 commit 28b2ead

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

60-permutation-sequence.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,37 @@ const getPermutation = function (n, k) {
1919
}
2020
return sb
2121
}
22+
23+
// another
24+
25+
/**
26+
* @param {number} n
27+
* @param {number} k
28+
* @return {string}
29+
*/
30+
const getPermutation = function(n, k) {
31+
let pos = 0
32+
const numbers = []
33+
const factorial = Array(n + 1).fill(0)
34+
let str = ''
35+
36+
let sum = 1
37+
factorial[0] = 1
38+
39+
for(let i = 1; i <= n; i++) {
40+
sum *= i
41+
factorial[i] = sum
42+
}
43+
for(let i = 1; i <= n; i++) {
44+
numbers.push(i)
45+
}
46+
k--
47+
for(let i = 1; i <= n; i++) {
48+
const idx = ~~(k / factorial[n - i])
49+
str += numbers[idx]
50+
numbers.splice(idx, 1)
51+
k -= idx * factorial[n - i]
52+
}
53+
54+
return str
55+
};

0 commit comments

Comments
 (0)