链接: https://oj.leetcode.com/problems/gray-code/
格雷码 见维基百科 http://zh.wikipedia.org/wiki/%E6%A0%BC%E9%9B%B7%E7%A0%81
知道原理后就很简单了
class Solution
{
public:
vector<int> grayCode(int n)
{
vector<int> ans;
ans.push_back(0);
for(int i=0;i<n;i++)
{
for(int j=0;j<1<<i;j++)
{
int t=ans[(1<<i)-j-1];
t|=1<<i;
ans.push_back(t);
}
}
return ans;
}
};