A:原码 R:右移一位 G:格雷码(A与R异或运算)
0000=0 0000=0 0000=0
0001=1 0000=0 0001=1
0010=2 0001=1 0011=3
0011=3 0001=1 0010=2
0100=4 0010=2 0110=6
0101=5 0010=2 0111=7
0110=6 0011=3 0101=5
0111=7 0011=3 0100=4
class Solution {
public:
vector<int> grayCode(int n) {
vector<int>res;
for(int i = 0;i < pow(2,n);i++){
int num = i ^ (i >> 1);
res.push_back(num);
}
return res;
}
};