72. 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.
For example, given n = 2, return [0,1,3,2]. Its gray code sequence is:
00 - 0
01 - 1
11 - 3
10 - 2
My approach is to create a hash set H and start with number 0. For each iteration I change one bit from my current number and check whether it is not already in set H, if not we adds it in the result and start the iteration again. The time complexity in the end is O(N).
You can read my code here.