描述
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.
For example, given n = 2, return [0,1,3,2]. Its gray code sequence is:
1 | 00 - 0 |
分析
题目要求是用生成所有n位的格雷码,即生成$2^n$个格雷码,关于格雷码,wiki上有详细介绍,也有用二进制数转格雷码的公式:$G(N) = (B(n)/2) XOR B(n)$。
解决方案1(C++)
1 | class Solution { |