less than 1 minute read

<-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;
    }
};