Gray Code
<-M 89> Gray Code
// Method 1
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> ans;
for(int i = 0; i < (1 << n); i++)
ans.push_back(i ^ (i >> 1));
return ans;
}
};
// Method 2
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> prev;
int i, j, b;
prev.push_back(0);
prev.push_back(1);
for(i = 1; i < n; i ++){
b = 1 << i;
for(j = b - 1; j >= 0; j --){
prev.push_back(b | prev[j]);
}
}
return prev;
}
};