格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。
给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> rec;
rec.push_back(0);
int cur = 1;
while(n>0){
for(int i = rec.size()-1;i>= 0;i--){
rec.push_back(cur+rec[i]);
}
cur *= 2;
n--;
}
return rec;
}
};