在正序的基础上将1左移n-1位,再加在逆序上,即得green code 格雷码。
算法返回的是10进制的值
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> res;
int c=1;
res.push_back(0);
for(int i=0;i<n;i++){
for(int j=res.size()-1;j>=0;j--)
res.push_back(res[j]+c);
c<<=1;
}
return res;
}
};