要求:rt
思路:1的编码是0和1,分别在前面加0+反转在前面加1=就是00,01,11,10。注意实际操作时加0就是原数组只需要pushback加1的
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> result;
result.push_back(0);
if(n == 0) {
return result;
}
int first = 1;
for(int i = 0; i < n; i++){
for(int j = result.size() - 1; j >= 0; j--){
result.push_back(first + result[j]);
}
first = first << 1;
}
return result;
}
};