gray-code

当n=1时,为[0,1]

当n=2时,为[00,01,11,10]

当n=3时,为[000,001,011,010,110,111,101,100]

由此可以看出新的序列其实是在前面序列基础上插入新的值

其中前半部分的数值不变,后半部分的数值为上个序列中每个元素第n个位变1,逆向插入

class Solution {
public:
    vector grayCode(int n) {
        vectorresult;
        result.push_back(0);
        for(int i=0;i=0;i--)
                result.push_back(result[i]|flag);//反序每个数字左边变添加1
        }
        return result;
    }
};

你可能感兴趣的:(gray-code)