class GrayCode
{
public:
vector getGray1(int n)
{
vectorv;
if(n<=0)return v;
int num=pow(2,n);
for(int i=0; i>1))>>j)&1)
{
vi+='1';
}
else
{
vi+='0';
}
}
reverse(vi.begin(),vi.end());
v.push_back(vi);
}
return v;
}
vector getGray2(int n)
{
vectorv(pow(2,n));
if(n==1)
{
v[0]='0';
v[1]='1';
return v;
}
vectorprev=getGray(n-1);
for(int i=0; i getGray(int n)
{
vectorv;
for(int i=0; i=0; j--)
{
string temp1='0'+v[j];
string temp2='1'+v[j];
v[j]=temp1;
v.push_back(temp2);
}
}
}
return v;
}
};