classSolution{public:vector<int>grayCode(intn){// Note: The Solution object is instantiated only once and is reused by each test case.
vector<int>seq;seq.clear();if(n==0){seq.push_back(0);returnseq;}for(inti=0;i<n;i++){if(i==0){seq.push_back(0);seq.push_back(1);}else{vector<int>seq_copy;seq_copy.clear();intincrease=(int)pow(2.0,i);intstate=0;for(intj=0;j<seq.size();j++){if(state==0){seq_copy.push_back(seq[j]+0);seq_copy.push_back(seq[j]+increase);state=1;}elseif(state==1){seq_copy.push_back(seq[j]+increase);seq_copy.push_back(seq[j]+0);state=0;}}seq.clear();for(intj=0;j<seq_copy.size();j++){seq.push_back(seq_copy[j]);}}}returnseq;}};
classSolution{public:vector<int>grayCode(intn){// Note: The Solution object is instantiated only once and is reused by each test case.
vector<int>seq;seq.clear();if(n==0){seq.push_back(0);returnseq;}for(inti=0;i<n;i++){if(i==0){seq.push_back(0);seq.push_back(1);}else{vector<int>seq_copy;seq_copy.clear();intstate=0;for(intj=0;j<seq.size();j++){if(state==0){seq_copy.push_back((seq[j]<<1)+0);seq_copy.push_back((seq[j]<<1)+1);state=1;}elseif(state==1){seq_copy.push_back((seq[j]<<1)+1);seq_copy.push_back((seq[j]<<1)+0);state=0;}}seq.clear();for(intj=0;j<seq_copy.size();j++){seq.push_back(seq_copy[j]);}}}returnseq;}};