89. 格雷编码(LeetCode)(常识)

89. 格雷编码

找规律,例如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;
    }
};
posted @ 2025-03-11 20:11  awei040519  阅读(25)  评论(0)    收藏  举报