什么是格雷编码

规律: 虚线的上下除去首位是映射关系

参考链接

Analyze

/**
 * @param {number} n
 * @return {number[]}
 */
// 00 // 01 => // 10 // 11
var grayCode = function (n) {
  const arr = new Array()
  arr[0] = [0]
  for (let i = 1; i <= n; i++) {
    const newArr = arr[i - 1].slice().reverse().map(r => r + Math.pow(2, i - 1))
    arr[i] = [...arr[i - 1], ...newArr]
  }
  return arr[n]
}