Gray Code
DP
vector<int> grayCode(int n) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> res; if(n<0) return res; res.push_back(0); int cnt = 1; for(int i=1;i<=n;i++) { int added = 1<<(i-1); for(int j=cnt-1;j>=0;j--) res.push_back(added+res[j]); cnt *= 2; } return res; }