Gray Code LeetCode solution in JavaScript

1
/**
2
* @param {number} n
3
* @return {number[]}
4
*/
5
var grayCode = function (n) {
6
return binaryToInt(dfs(n, ["0", "1"]));
7
};
8

9
const dfs = (n, arr) => {
10
if (n === 1) return arr;
11

12
const revArr = [...arr].reverse();
13

14
addOneBefore("0", arr);
15
addOneBefore("1", revArr);
16

17
return dfs(n - 1, [...arr, ...revArr]);
18
};
19

20
const addOneBefore = (e, arr) => {
21
for (let i = 0; i < arr.length; i++) {
22
arr[i] = e + arr[i];
23
}
24
};
25

26
const binaryToInt = (arr) => {
27
for (let i = 0; i < arr.length; i++) {
28
arr[i] = parseInt(arr[i], 2);
29
}
30
return arr;
31
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0