点击打开链接
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<cstring>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<map>
#include<limits.h>
#include<assert.h>
#include<sstream>
#define LL long long
#define inf 0x3f3f3f3f
#define mod 1e9+7
using namespace std;
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> ret{0};
/* for(int i=0;i<ret.size();i++){
cout<<ret[i]<<endl;
}
*/
for(int i=0;i<n;i++){
int curCnt=ret.size();
//当前数字按照逆序顺序添加到ret中
while (curCnt) {///这里就是对称 逆序加进去情况
curCnt--;
int curNum=ret[curCnt];
curNum += (1<<i);
ret.push_back(curNum);
}
}
return ret;
}
};
int main()
{
Solution temple;
temple.grayCode(2);
return 0;
}