An `n`-bit gray code sequence is a list of `2ⁿ` integers where every value is in `[0, 2ⁿ - 1]`, the first value is `0`, every value appears once, and **adjacent values (including the first and last) differ by exactly one bit**.
Return any valid n-bit gray code sequence using the standard reflected-binary construction.
Example 1
Input:n = 2
Output:[0,1,3,2]
Explanation:00 -> 01 -> 11 -> 10, each step flips one bit.