class Solution {
public:
vector<int> grayCode(int n) {
vector<int>res(1, 0);
while(n--)
{
for(int j = res.size()-1; j>=0;j--)
{
res[j] *=2;
res.push_back(res[j] + 1);
}
}
return res;
}
};