class Solution {
public:
vector<int> grayCode(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<int> v;
v.push_back(0);
for (int i = 0; i < n; i++) {
int size = v.size();
for (int j = size - 1; j >= 0; j--)
v.push_back(v[j]);
for (int j = size; j < 2 * size; j++)
v[j] += (1 << i);
}
return v;
}
};
Small Case: 0ms
Large Case: 24ms
Time: O(n * 2 ^ n)
Space: O(2^n)