89. Gray Code
The gray code is a binary numeral system where two successive values differ in only one bit.
Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.
Example 1:
Input: 2
Output: [0,1,3,2]
Explanation:
00 - 0
01 - 1
11 - 3
10 - 2
For a given _n_ , a gray code sequence may not be uniquely defined.
For example, [0,2,3,1] is also a valid gray code sequence.
00 - 0
10 - 2
11 - 3
01 - 1
Example 2:
Input: 0
Output: [0]
Explanation: We define the gray code sequence to begin with 0.
A gray code sequence of _n_ has size = 2n, which for _n_ = 0 the size is 20 = 1.
Therefore, for _n_ = 0 the gray code sequence is [0].
# @lc code=start
using LeetCode
function gray_code(N::Int)
powN = 1 << N
res = Array{Int}(undef, powN)
for i in 0:powN-1
res[i + 1] = i ⊻ (i >> 1);
end
res
end
# @lc code=end
gray_code (generic function with 1 method)
This page was generated using DemoCards.jl and Literate.jl.