89. 格雷编码(LeetCode)(常识)
找规律,例如k位格雷码,对k-1位格雷码进行镜像对称,在前半部分末尾补0,后半部分末尾补1即可得到k位格雷码

class Solution {
public:
vector<int> grayCode(int n) {
vector<int> res(1, 0);
while(n--){
//镜像对称
for(int i = res.size() - 1; i >= 0; --i){
//前半部分补0,即乘以2
res[i] *= 2;
//后半部分在乘以2的基础上加1即可
res.push_back(res[i] + 1);
}
}
return res;
}
};

浙公网安备 33010602011771号