问题:gray code是一种二进制数字系统,两个连续的数只有一位不同。给出一个正整数n,n表示gray code的位数,输出gray code.
思路:使用回溯法。通过枚举0,1,2,3的gray code,可以发现规律
n=0时,gray code为0
n=1时,gray code为: [0,1]
n=2时,gray code为:[00, 01, 11, 10]
n=3时,gray code为:[000, 001, 011, 010, 110, 111, 101, 100]
可以发现n=3的gray code为n=2时的gray code与n=2时的gray code结果倒序中的每个元素最左边添加1后组成的集合。
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/LeetCode/Gray%20Code