递归方式
class GrayCode {
public:
vector<string> getGray(int n) {
// write code here
vector<string> res;
if(n == 1) {
res.push_back("0");
res.push_back("1");
return res;
}
vector<string> v = getGray(n - 1);
for(int i = 0; i < v.size(); i++) {
res.push_back("0" + v[i]);
}
for(int i = v.size() - 1; i >= 0; i--) {
res.push_back("1" + v[i]);
}
return res;
}
};
迭代方式
void Gray(int n)
{
if(n<=0)
return;
vector<string> result;
int len=pow(2,n);
result.reserve(len);
result.push_back("0");
result.push_back("1");
for(int i=1;i<n;i++)
{
f