class Solution {
public:
vector<int> grayCode(int n) {
vector<int> ret;
if(n==0)
{
ret.push_back(0);
return ret;
}
if(n==1)
{
ret.push_back(0);
ret.push_back(1);
return ret;
}
vector<int> unit=grayCode(n-1);
ret.insert(ret.end(),unit.begin(),unit.end());
reverse(unit.begin(),unit.end());
//右起第n个bit置为1,从1计数
int flag=1;
flag=flag<<(n-1);
for(size_t i=0;i<unit.size();i++)
{
unit[i]=unit[i]|flag;
}
ret.insert(ret.end(),unit.begin(),unit.end());
return ret;
}
};
Gray Code
最新推荐文章于 2024-07-08 21:33:12 发布