链接: 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;

		}
};