题目
解题分析
这里挂上原图的b站up主讲解视频链接:视频讲解
我觉得应该看这张图,然后就能了解其中的规律了吧。
解题代码
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> ret;
ret.reserve(1 << n); //TODO 提前分配好底层的内存为 2^n 个
ret.push_back(0); //TODO 第一个一定是0
for (int i = 1; i <= n; i++) {
int m = ret.size();
for (int j = m - 1; j >= 0; j--) {//TODO 根据之前的答案倒序镜像得到新的结果
ret.push_back(ret[j] | (1 << (i - 1)));
}
}
return ret;
}
};