给定一个二进制的位数n,求出一个0到2^n-1的排列,使得相邻两项(包含头尾两项)的二进制表达中只有一位恰好不同。
说明:格雷码的第i位是i xor (i >> 1),简单的O(2^n)
vector<int> Grey_Create(int n)
{
vector<int> res;
res.clear();
for(int i = 0;i < (1 << n);i++) res.push_back(i ^ (i >> 1));
return res;
}
给定一个二进制的位数n,求出一个0到2^n-1的排列,使得相邻两项(包含头尾两项)的二进制表达中只有一位恰好不同。
说明:格雷码的第i位是i xor (i >> 1),简单的O(2^n)
vector<int> Grey_Create(int n)
{
vector<int> res;
res.clear();
for(int i = 0;i < (1 << n);i++) res.push_back(i ^ (i >> 1));
return res;
}