Skip to content

Commit fa24912

Browse files
committed
Runtime: 57 ms (Top 54.55%) | Memory: 41.60 MB (Top 90.91%)
1 parent 2e58ec6 commit fa24912

File tree

1 file changed

+11
-36
lines changed

1 file changed

+11
-36
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,15 @@
1-
* @param {number} n
2-
* @return {number}
3-
*/
4-
var reinitializePermutation = function(n) {
5-
if (n < 2) return 0;
6-
let prem = [];
7-
let count = 0;
8-
for (var i = 0; i < n; i++) {
9-
prem[i] = i;
10-
}
11-
let newArr = [];
12-
newArr = helper(prem, newArr);
13-
14-
const equals = (a, b) => JSON.stringify(a) === JSON.stringify(b);
1+
// Runtime: 57 ms (Top 54.55%) | Memory: 41.60 MB (Top 90.91%)
152

16-
if (equals(prem, newArr)) {
17-
count++;
18-
return count;
19-
} else {
20-
while (!equals(prem, newArr)) {
21-
count++;
22-
let temp = newArr;
23-
newArr = [];
24-
newArr = helper(temp, newArr);
25-
}
26-
}
27-
return count + 1;
28-
};
3+
var reinitializePermutation = function(n) {
4+
const BASE_INDEX = 1;
5+
let result = 1;
6+
let index = n / 2 + (BASE_INDEX - 1) / 2;
297

30-
var helper = function (prem, arr) {
31-
let n = prem.length;
32-
for (var i = 0; i < n; i++) {
33-
if (i % 2 == 0) {
34-
arr[i] = prem[i / 2];
35-
} else {
36-
arr[i] = prem[n / 2 + (i - 1) / 2];
8+
while (index !== BASE_INDEX) {
9+
index = index % 2
10+
? n / 2 + (index - 1) / 2
11+
: index / 2;
12+
result += 1;
3713
}
38-
}
39-
return arr;
14+
return result;
4015
};

0 commit comments

Comments
 (0)