Gray Code LeetCode solution in JavaScript
1/**2* @param {number} n3* @return {number[]}4*/5var grayCode = function (n) {6return binaryToInt(dfs(n, ["0", "1"]));7};89const dfs = (n, arr) => {10if (n === 1) return arr;1112const revArr = [...arr].reverse();1314addOneBefore("0", arr);15addOneBefore("1", revArr);1617return dfs(n - 1, [...arr, ...revArr]);18};1920const addOneBefore = (e, arr) => {21for (let i = 0; i < arr.length; i++) {22arr[i] = e + arr[i];23}24};2526const binaryToInt = (arr) => {27for (let i = 0; i < arr.length; i++) {28arr[i] = parseInt(arr[i], 2);29}30return arr;31};