89. 格雷编码(c++)

格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。
给定一个代表编码总位数的非负整数 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;
    }
};

猜你喜欢

转载自www.cnblogs.com/one-think/p/12674230.html