-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy path0089-gray-code.js
More file actions
27 lines (26 loc) · 791 Bytes
/
0089-gray-code.js
File metadata and controls
27 lines (26 loc) · 791 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
* 89. Gray Code
* https://leetcode.com/problems/gray-code/
* Difficulty: Medium
*
* An n-bit gray code sequence is a sequence of 2n integers where:
* - Every integer is in the inclusive range [0, 2n - 1],
* - The first integer is 0,
* - An integer appears no more than once in the sequence,
* - The binary representation of every pair of adjacent integers differs
* by exactly one bit, and
* - The binary representation of the first and last integers differs by
* exactly one bit.
* Given an integer n, return any valid n-bit gray code sequence.
*/
/**
* @param {number} n
* @return {number[]}
*/
var grayCode = function(n) {
const result = [0];
for (let i = 0; i < n; i++) {
result.push(...result.map((v) => v | 1 << i).reverse());
}
return result;
};